Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la différence entre une clé primaire et une clé de substitution ?

La clé primaire est une clé unique dans votre table que vous choisissez qui identifie le mieux de manière unique un enregistrement dans la table. Toutes les tables doivent avoir une clé primaire, car si vous avez besoin de mettre à jour ou de supprimer un enregistrement, vous devez savoir comment l'identifier de manière unique.

Une clé de substitution est une clé générée artificiellement. Ils sont utiles lorsque vos enregistrements n'ont pratiquement pas de clé naturelle (comme une Person table, car il est possible que deux personnes nées à la même date aient le même nom, ou des enregistrements dans un journal, car il est possible que deux événements se produisent de sorte qu'ils portent le même horodatage). Le plus souvent, vous les verrez implémentés sous forme d'entiers dans un champ à incrémentation automatique ou sous forme de GUID générés automatiquement pour chaque enregistrement. Les numéros d'identification sont presque toujours des clés de substitution.

Contrairement aux clés primaires, toutes les tables n'ont pas besoin de clés de substitution. Si vous avez un tableau qui répertorie les États d'Amérique, vous n'avez pas vraiment besoin d'un numéro d'identification pour eux. Vous pouvez utiliser l'abréviation de l'état comme code de clé primaire.

Le principal avantage de la clé de substitution est qu'elle est facile à garantir comme unique. Le principal inconvénient est qu'ils n'ont aucune signification. Cela ne veut pas dire que "28" est le Wisconsin, par exemple, mais lorsque vous voyez "WI" dans la colonne État de votre tableau d'adresses, vous savez de quel état vous parlez sans avoir besoin de rechercher quel état est lequel dans votre état tableau.