Ho diverse tabelle in cui i record possono essere identificati in modo univoco con diversi settori di attività. In passato ho usato questi campi come PK, tenendo presenti questi vantaggi:
- Semplicità; non ci sono campi estranei e solo un indice
- Il clustering consente di unire rapidamente join e filtri basati sull'intervallo
Tuttavia, ho sentito un caso fatto per creare un IDENTITY INT
PK sintetico e invece applicare la chiave aziendale con un UNIQUE
vincolo separato . Il vantaggio è che lo stretto PK crea indici secondari molto più piccoli.
Se una tabella non ha indici diversi dal PK, non vedo alcun motivo per favorire il secondo approccio, sebbene in una tabella di grandi dimensioni è probabilmente meglio supporre che gli indici possano essere necessari in futuro, e quindi favorire lo stretto PK sintetico . Mi manca qualche considerazione?
Per inciso, non sto discutendo contro l'uso di chiavi sintetiche nei data warehouse, sono solo interessato a quando utilizzare un singolo PK ampio e quando utilizzare un PK stretto più un ampio Regno Unito.