PDA

View Full Version : [SQL] Associazione N-M con 2 tabelle di link


Squall 94
09-06-2013, 10:21
Online non ho trovato una simile cosa, ne in teoria ne in pratica .
Devo realizzare un database e mi chiedevo se in un'associazione N-M si potessero usare due tabelle di link .
Diciamo che il modello E-R, per come l'ho costruito, me ne impone due .
Se non è corretto farlo dovrò cambiare logica .

british
11-06-2013, 11:00
Diciamo che il modello E-R, per come l'ho costruito, me ne impone due .
Se non è corretto farlo dovrò cambiare logica .

Nel senso che hai due entità e in mezzo due associazioni?
Il modello logico è derivabile dal modello concettuale in maniera pressoché meccanica; un'associazione binaria con cardinalità massime rispettivamente M e N diventa una tabella a sè stante nello schema logico (tabella di link, come la chiami).

gugoXX
12-06-2013, 11:06
Esempio Persone e Citta'.
Ogni Persona ha vissuto in tante citta'.
In ogni citta' hanno vissuto tante persone.

Tabella entita' persona
# IDPersona
Name
etc.

Tabella entita' Citta'.
# IDCitta
Name
etc.

Tabella Relazione Persona-Citta
# IDPersona
# IDCitta
Con chiave primaria doppia

E' sufficiente una tabella di relazione.

iezzetto
12-06-2013, 11:56
Sulla "carta" hai solo 2 entità.

Praticamente lo schema si trasforma in 3 tabelle:

TABELLA1 <-- TAB_RELAZIONE --> TABELLA 2

TABELLA1 (Id_Tabella1, ... )
TAB_RELAZIONE (Id_Tabella1, Id_Tabella2, ... )
TABELLA2 (Id_Tabella2, ... )

Squall 94
12-06-2013, 20:15
Due Primary Key non penso si possano mettere, in parte in questo caso, però il discorso fila :) .
Comunque grazie ma ho risolto diversamente .

Come si dice, se ti si presenta un problema, vedi di superarlo creandotene un altro :D .

gugoXX
14-06-2013, 08:11
Primary key doppia, non 2 primary key.

Squall 94
14-06-2013, 08:28
Non si era capito o non è corretto dirlo come ho scritto io ? :)

gugoXX
14-06-2013, 08:48
Non si era capito o non è corretto dirlo come ho scritto io ? :)

Boh, io almeno non ho capito.
Hai detto

"Due Primary Key non penso si possano mettere,"

E fin qui e' giusto, ma perche' l'hai scritto?
Nessuno ha proposto di mettere 2 primary key.

Squall 94
14-06-2013, 09:34
Esempio Persone e Citta'.
Ogni Persona ha vissuto in tante citta'.
In ogni citta' hanno vissuto tante persone.

Tabella entita' persona
# IDPersona
Name
etc.

Tabella entita' Citta'.
# IDCitta
Name
etc.

Tabella Relazione Persona-Citta
# IDPersona
# IDCitta
Con chiave primaria doppia

E' sufficiente una tabella di relazione.

Lo ha scritto lui, comunque ci siamo capiti :)

gugoXX
15-06-2013, 11:15
Lo ha scritto lui, comunque ci siamo capiti :)

Quel "Lui" ero sempre io.
Comunque primary Key doppia e' diverso da "2 primary key".
Primary key doppia e' UNA primary key sola, ma composta di due colonne.
L'univocita' e' data dalla coppia, non possono esserci due record con la stessa coppia di valori.
Gli indici in generale, e gli indici univoci come anche la primary key possono essere composte di piu' colonne.

Squall 94
15-06-2013, 11:46
Ahahah scusami, sono diventato tonto :D .
Ora capisco, infatti pensavo di aver letto 2 Primary Key e non mi sembrava possibile, grazie a tutti ;) .