2012-06-05 5 views
0

La clé étrangère est-elle définie comme substitut de la dépense parent table?clés de substitution en tant que clé étrangère

Depuis que je dois joindre ce parent/table de référence pour montrer la clé naturelle.

Mais pourquoi il est préférable de définir la clé étrangère comme surrgate pour référencer la table.

Répondre

1

Il est coûteux dans un sens que vous ayez besoin d'un JOIN dans certaines situations où cela ne serait pas nécessaire avec la clé naturelle (comme vous l'avez déjà noté). En outre, les clés naturelles jouent généralement mieux avec clustering, et sont parfois nécessaires pour correctly modelling diamond-shaped dependencies. D'un autre côté, l'utilisation d'une clé de remplacement «plus fine» peut économiser de l'espace et simplifier la mise à jour (surtout quand il y a plusieurs niveaux de FK).

Aucune approche n'est absolument «meilleure» - C'est une question de compromis.

Questions connexes