Ci sono diverse scuole di pensiero su questo. Una scuola preferisce includere una chiave primaria e nominare la tabella di collegamento qualcosa di più significativo delle sole due tabelle che collega. Il ragionamento è che sebbene la tabella possa apparire come un semplice tavolo di collegamento, potrebbe diventare una tabella con dati significativi.
Un esempio è un numero molti-a-molti tra riviste e abbonati. In realtà quel collegamento è un abbonamento con i propri attributi, come data di scadenza, stato di pagamento, ecc.
Tuttavia, a volte penso che una tabella di collegamento sia solo una tabella di collegamento. Il rapporto molti a molti con le categorie è un buon esempio di questo.
Quindi, in questo caso, non è necessaria una chiave primaria di campo separata. Potresti avere una chiave di assegnazione automatica, che non danneggerebbe nulla, e renderebbe più facile l'eliminazione di record specifici. Potrebbe essere una buona pratica, quindi se la tabella successivamente si sviluppa in una tabella significativa con i propri dati significativi (come sottoscrizioni), avrà già una chiave primaria di assegnazione automatica.
È possibile inserire un indice univoco sui due campi per evitare duplicati. Ciò impedirà anche i duplicati se hai una chiave di autoassegnazione separata. È possibile utilizzare entrambi i campi come chiave primaria (che è anche un indice univoco).
Così, la sola scuola di pensiero può attaccare con l'intero autoassegnare le chiavi primarie ed evitare le chiavi primarie composte. Questo non è l'unico modo per farlo, e forse non il migliore, ma non ti porterà in errore, in un problema in cui ti dispiace davvero.
Ma, per qualcosa di simile a quello che stai facendo, probabilmente starai bene solo con i due campi. Consiglio comunque di rendere i due campi una chiave primaria composta o almeno di inserire un indice univoco sui due campi.
fonte
2013-02-03 19:58:43
Vorrei fare la stessa cosa. L'aggiunta di una terza colonna consente di avere record duplicati. –
è necessario creare una chiave primaria composta in questo caso? –
@ Harry.Naeem Se non lo fai, potresti facilmente finire con i record duplicati nella tabella. Non penserei che lo vorresti. – Taryn