Ho una tabella con una chiave primaria composita (composta da 4 colonne) che viene utilizzata per garantire che non vengano inseriti duplicati nella tabella. Ora ho bisogno di una nuova tabella che dovrà fare riferimento alle chiavi di questa tabella come chiavi esterne.
La mia domanda è quale approccio è più efficiente per le velocità di ricerca:
1) Creo la nuova tabella includendo tutte e 4 le colonne e le faccio riferimento tutte in una chiave esterna.
o
2) Creo una nuova colonna identità nella tabella Chiave primaria e la utilizzo come chiave esterna nella nuova tabella.
Questo database dovrebbe contenere una grande quantità di dati, quindi l'ho costruito fino ad ora al fine di ridurre al minimo la quantità di dati contenuti in ciascuna tabella. Con questo in mente, l'opzione 2 sarebbe l'approccio migliore poiché salverò 2 colonne int e una colonna datetime per ogni riga, ma voglio evitare di aumentare il tempo di ricerca se non necessario.
INT IDENTITY
) in tal caso - rende molto più semplice fare riferimento e unirmi a quella tabella. Per evitare duplicati, metti un vincolo UNICO su quelle quattro colonne. Inoltre: le chiavi primarie strette sono molto migliori per motivi di prestazioni (se utilizzate come chiave di clustering)