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

Clés primaires MySQL

Explique ce qu'est une clé primaire et pourquoi elle fait partie intégrante des bases de données relationnelles.

Lorsque nous avons créé nos deux tables, nous avons également créé une clé primaire pour chaque table.

Lorsque vous développez les nœuds dans le SCHEMAS de gauche , vous pouvez voir les clés primaires (et les clés étrangères - nous y reviendrons ensuite) répertoriées sous chaque table :

Comme le montre la capture d'écran ci-jointe, les Index les nœuds contiennent des index (dans notre cas, des clés étrangères et/ou des clés primaires). Ces clés primaires et clés étrangères ne sont là que parce que nous les avons spécifiées dans notre code lorsque nous avons créé les tables.

Plus précisément, nous avons utilisé PRIMARY KEY (FruitId) pour créer le FruitId colonne la clé primaire pour le Fruit table, et nous avons utilisé PRIMARY KEY (UnitId) pour faire de l' UnitId colonne la clé primaire pour les Unités tableau.

Qu'est-ce qu'une clé primaire ?

Une clé primaire (également appelée clé unique ) est une colonne qui a été allouée comme champ d'identifiant unique. La valeur d'une colonne de clé primaire est unique pour chaque enregistrement. En d'autres termes, deux enregistrements ne peuvent pas partager la même valeur sur cette colonne.

Un exemple classique de champ de clé primaire est un champ "ID". La plupart des tables auront un champ ID qui fournit un identifiant unique pour chaque enregistrement. Les exemples pourraient inclure "CustomerId", "ProductId", "FruitId", etc. Sans champs d'identification comme ceux-ci, la fonction de votre base de données serait gravement entravée. Si vous aviez deux clients ou plus portant le même nom, comment pourriez-vous trouver leur dossier ? S'il est vrai que vous pouvez éventuellement trouver quelque chose d'unique dans chaque enregistrement, il est beaucoup plus propre et plus facile d'avoir une colonne dont le but principal est de fournir une identification unique pour chaque enregistrement.

Un primaire peut être soit une valeur normale dont l'unicité est garantie (un numéro ISBN pour les livres, un code de produit, etc.), soit une valeur générée par l'application ou le SGBD spécifiquement pour être unique (comme un identifiant ou entier à incrémentation automatique).

Choix d'une clé primaire

Soyez prudent lorsque vous choisissez une colonne pour votre clé primaire. Vous devez vous assurer que chaque enregistrement en aura un, et qu'il n'y a aucune possibilité que deux enregistrements partagent la même valeur, ou qu'un enregistrement ait plus d'une valeur.

Par exemple, l'utilisation de l'adresse e-mail de l'utilisateur peut fonctionner dans certains cas, mais ce n'est pas une base très solide pour un identifiant unique. Les utilisateurs peuvent modifier leur adresse e-mail. Les utilisateurs peuvent partager des adresses e-mail. Certains utilisateurs peuvent ne pas avoir d'adresse e-mail. Bien sûr, vous pourriez écrire votre système pour empêcher les utilisateurs de changer leur adresse e-mail ou de la partager, mais votre système ne serait pas très flexible ou convivial.

Vous pourriez exiger que tous les utilisateurs aient un nom d'utilisateur unique. Cela pourrait fonctionner. Cependant, vous devez bien réfléchir à toutes les possibilités. S'il y a une chance que les utilisateurs puissent le modifier ou le partager (passé, présent ou futur), ne l'utilisez pas comme clé primaire. Et si "TechGuy12" désactive son compte. Cela signifie-t-il qu'un autre utilisateur peut désormais utiliser "TechGuy12" ? Cela posera-t-il un problème pour votre application ou les rapports que vous devez générer ?

Si vous avez le moindre doute sur "l'unicité" de votre champ de clé primaire, utilisez un numéro généré automatiquement qui s'incrémente à chaque enregistrement créé.