Newsgroup: it.comp.appl.access
Titolo: Prime armi: collegamenti tra le tabelle.

Ciao, vi estraggo alcune righe dal testo 'Guida all'uso di Microsoft Access
2000' della Microsoft Press, Cap.4 pag.101
Creazione di collegamenti fra tabelle.
L'ultimo passo per la progettazione del database è la creazione dei
collegamenti fra le tabelle. Per ogni argomento, identifica le tabelle per
le quali hai scritto 'Molti' nella colonna 'Relazioni' del foglio di lavoro.
Accertati che la relazione corrispondente per l'altra tabella sia 'Uno'. Se
vedi molti in entrambe le tabelle, devi creare una tabella di intersezione
separata per gestire la relazione (non puoi definire direttamente una
relazione molti-a-molti fra due tabelle).
[...]
Dopo aver definito le relazioni molti-a-molti, devi creare i collegamenti
fra le tabelle. Per completare i collegamenti, inserisci una copia della
chiave primaria delle tabelle 'uno' in un campo delle tabelle 'molti'.
Ecco, non riesco a capire perchè i collegamenti vanno fatti solo tra tabelle
uno-a-molti e non anche molti-a-molti.
Mi fate per favore esempi concreti e chiari? E perchè c'è bisogno di un
effettivo collegamento tramite chiave primaria?
A che scopo?
Scusate la semplicità delle domande, ma dal capitolo 5 comincierò a lavorare
con Access e non vorrei partire con il piede sbagliato.
Grazie a tutti.

 A che scopo?
Facciamo un esempio pratico:
Tabella clienti: contiene ovviamente tutti i clienti e ogni cliente ha una
chiave primaria (non spiego cos'e' perche' presuppongo che tu l'abbia
capito)
Tabella servizi: contiene l'insieme dei tipi di servizi che tu offri ai tuoi
clienti. Anche in questa tabella e' definita una chiave primaria.
Ora, e' abbastanza evidente che un cliente possa essere collegato a uno o
piu' (quindi molti) servizi. Analogamente, un servizio puo' essere collegato
a piu' clienti.
Ergo: hai una relazione molti a molti.
Ora, se instauri una relazione tra le due tabelle collegandole direttamente
dovrai mettere un campo in una delle due che faccia riferimento al campo ID
(chiave primaria) dell'altra.
Questo ti portera' ad avere un collegamento uno a molti di una tabella
rispetto all'altra e quindi otterrai una relazione che non soddisfa le tue
esigenze.
Quello che devi fare e' creare una terza tabella che contenga due campi, uno
collegato col campo ID dell'una e l'altro collegato col campo ID dell'altra.
In questo modo otterrai la relazione molti a molti che ti serve:
TabCli        TabCollegamento    TabServ
IDCL  1-------M  IDCL
                IDSERV M--------1 IDSERV
So che non e' di immediata comprensione, ma tant'e'...
Sib
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

 So che non e' di immediata comprensione, ma tant'e'...
Ti ringrazio. Ho capito il problema, se metto in relazione due tabelle
molti-a-molti perdo la possibilità di reperire qualche tipo di informazione
quando ad es. non solo un cliente ha ordinato più libri ma quando uno stesso
libero è stato ordinato da più clienti....Perdo ovvero uno dei due
collegamenti possibili.
Grazie, spero che la pratica mi renda più....pratico in queste cose :-D

 Grazie, spero che la pratica mi renda più....pratico in queste cose :-D
In realta' e' un problema di "teoria". Cioe' e' proprio il concetto che
bisogna comprendere. La pratica viene dopo.
Ciao
Sib
--


 bisogna comprendere. La pratica viene dopo.
Ed infatti è ciò che sto cercando di fare :-D e pare ci stia
riuscendo....anche il perchè i collegamenti possono instaurarsi solo tra
tabelle in relazione uno-a-molti.
Cmq saturiamo ECHELON: saddam attentato bomba ira eta fbi bomba bin laden