J'ai plusieurs tableaux où les enregistrements peuvent être identifiés de manière unique avec plusieurs grands domaines d'activité. Dans le passé, j'ai utilisé ces champs en tant que PK, avec ces avantages à l'esprit:
- Simplicité; il n'y a pas de champs superflus et juste un index
- Le clustering permet des jointures de fusion rapides et des filtres basés sur des plages
Cependant, j'ai entendu des arguments en faveur de la création d'un IDENTITY INT
PK synthétique et de l'application de la clé métier avec une UNIQUE
contrainte distincte . L'avantage est que le PK étroit fait des indices secondaires beaucoup plus petits.
Si un tableau n'a pas d'indices autres que le PK, je ne vois aucune raison de favoriser la deuxième approche, bien que dans un grand tableau, il soit probablement préférable de supposer que des indices pourraient être nécessaires à l'avenir, et donc de favoriser le PK synthétique étroit . Suis-je en manque de considérations?
Soit dit en passant, je ne m'oppose pas à l'utilisation de clés synthétiques dans les entrepôts de données, je souhaite simplement savoir quand utiliser un seul PK large et quand utiliser un PK étroit plus un Royaume-Uni large.