|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Bologna
Messaggi: 466
|
[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?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 404
|
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 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Bologna
Messaggi: 466
|
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?
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 404
|
Quote:
![]() HA (idcliente,idtelefono) E (idcliente,idcellulare) Se il cliente ha il cellulare memorizza idcliente e idcellulare nella tabella E. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Bologna
Messaggi: 466
|
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.
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 404
|
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
|
|
|
|
|
|
#7 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
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 Ultima modifica di FabryHw : 10-06-2010 alle 01:16. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Bologna
Messaggi: 466
|
Ok, grazie mille a tutti.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:46.





















