Ha Dettagli tavolo contiene colonna ID nella relazione master-detail?
-
19-09-2019 - |
Domanda
Nelle relazioni master-detail, fanno di dettagli tabelle contengono colonne ID?
In alternativa, dovrebbe?
Nel database Northwind, OrderDetail non ha una colonna ID.
Soluzione
Ogni tabella di dati che si ha che contiene qualcosa che si desidera essere in grado di recuperare deve sempre contenere una chiave primaria - che è il suo lavoro principale:. Identificare in modo univoco una singola riga
Proprio perché i dettagli appartengono a una fila maestro non significa che sono le righe di dati non completo se stessi -. Hanno bisogno di essere identificabili in qualche modo
Quindi sì - mi sento di raccomandare qualsiasi tabella di dettaglio per avere una qualche forma di una chiave primaria ( "ID"). Se questo è in qualche modo collegato al master-ID o non è qualcosa che si potrebbe decidere, caso per caso -. Ma ci doveva essere un modo per identificare ogni riga di dettaglio in modo indipendente in qualche modo
Se si dispone di una tabella di collegamento per un M: N relazione, in genere, devi avere solo le due colonne chiave esterna (per le tabelle 1 e 2) in là. Questo è di solito abbastanza buono, dal momento che la combinazione di questi due FK è unico.
L'unico motivo per aggiungere un ID separato per tale tabella sarebbe se avete bisogno di aggiungere ulteriori pezzi di informazioni che descrivono la relazione in sé. Ma anche allora, fino a quando la combinazione (key1, key2) è unica, che è abbastanza buono in genere.