View Full Version : [Sql Server] Associazioni in db
Ciao a tutti, ho un piccolo dilemma che mi assale. Ho tre tabelle connesse da un associazione molti a molti e dovrei farla in sql server. Ho un tabella Città, una tabella con Avvenimenti ed infine la tabella Elementi. Sono connesse tutte molti a molti tra di loro e cioè: in 0 o più città ci possono essere stati 0 o più avvenimenti e viceversa, nel contempo negli avvenimenti accaduti nelle città possono esserci stati 0 o più elementi. Come faccio a tradurre questo in sql server? :D
Buongiorno,
in sql le associazioni molti a molti io di solito le interpreto mettento un'altra tabella tra di loro che contiene le chiavi primarie delle 2 cioè per esempio:
ho una tabella Cliente e una Telefono creo un'altra tabella Ha che contiene le chiavi primarie del Cliente e del Telefono.
Quindi prima avevi Cliente (N;M) Telefono.
Adesso hai Cliente (1;N) Ha (M;1) Telefono.
Spero di essere stato chiaro ciaooooooo
Ok, perfetto, ma se dovessi fare cliente, telefono e cellulare, tutti molti a molti, creo la tabella associazione così come hai detto tu ma per esempio io non ho sempre il cellulare quindi l'id associato a cellulare deve poter essere null e nello stesso tempo io posso avere più cellulari per quel cliente. Come risolveresti la cosa?
Ok, perfetto, ma se dovessi fare cliente, telefono e cellulare, tutti molti a molti, creo la tabella associazione così come hai detto tu ma per esempio io non ho sempre il cellulare quindi l'id associato a cellulare deve poter essere null e nello stesso tempo io posso avere più cellulari per quel cliente. Come risolveresti la cosa?
Io risolverei facendo le associazioni in questo modo:
http://jackvc09.altervista.org/esempio.jpg
HA (idcliente,idtelefono)
E (idcliente,idcellulare)
Se il cliente ha il cellulare memorizza idcliente e idcellulare nella tabella E.
Si giusto, tu hai fatto due associazioni ma purtroppo il mio caso è diverso, ho in un unica associazione tre entità, in poche parole è come se avessi nell'associazione Ha fossero connesse le entità Cliente, Telefono e Cellulare. Un caso un pò particolare. :D
Ciao secondo me è sagliato il concetto base cioè il database strutturato in quel modo non ti permette di fare quello che vuoi nel modo in cui lo hai strutturato tu è come se nel tuo programma tutti e tre i campi gli devi inserire obbligatoriamente allora va bene ma se vuoi che l'utente può anche non mettere un campo allora secondo me devi cambiare la struttura del database in modo da non complicarti troppo la vita
Si giusto, tu hai fatto due associazioni ma purtroppo il mio caso è diverso, ho in un unica associazione tre entità, in poche parole è come se avessi nell'associazione Ha fossero connesse le entità Cliente, Telefono e Cellulare. Un caso un pò particolare. :D
Come l'hai descritta tu nel tuo primo post hai 2 relazioni molti a molti
La città ha zero o più avvenimenti
Ogni avvenimento ha zero o più elementi.
NON c'è una relazione diretta, ma solo transitiva, tra Città ed Elementi, quindi le soluzioni che ti hanno proposto sono quelle giuste.
Città
1<->N
CittàAvvenimenti
N<->1
Avvenimenti
1<->N
AvvenimentiElementi
N<->1
Elementi
Ok, grazie mille a tutti.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.