J'ai une table avec une clé primaire composite (composée de 4 colonnes) qui est utilisée pour garantir qu'aucun doublon n'est entré dans la table. J'ai maintenant besoin d'une nouvelle table qui devra référencer les clés de cette table en tant que clés étrangères.
Ma question est de savoir quelle approche est la plus efficace pour les vitesses de recherche:
1) Dois-je créer la nouvelle table comprenant les 4 colonnes et les référencer toutes dans une clé étrangère.
ou
2) Dois-je créer une nouvelle colonne d'identité dans la table de clé primaire et l'utiliser comme clé étrangère dans la nouvelle table.
Cette base de données devrait contenir une très grande quantité de données, donc je l'ai construite jusqu'à présent en vue de minimiser la quantité de données contenues dans chaque table. Dans cet esprit, l'option 2 serait la meilleure approche car j'enregistrerai 2 colonnes int et une colonne datetime pour chaque ligne, mais je veux éviter d'augmenter le temps de recherche si cela n'est pas nécessaire.
INT IDENTITY
) dans un tel cas - rend le référencement et la jonction de cette table tellement plus faciles. Pour éviter les doublons, placez une contrainte UNIQUE sur ces quatre colonnes. Aussi: les clés primaires étroites sont bien meilleures pour des raisons de performances (si elles sont utilisées comme clé de cluster)