MySQL Clé étrangère | Foreign Key
Une clé étrangère est un champ (ou une collection de champs) dans une table qui fait référence à une clé primaire dans une autre table. La table contenant la clé étrangère s’appelle la table « fille » et la table contenant la clé candidate s’appelle la table « mére ».
Exemple : Dans le diagramme UML suivant, la table « Personnes » est la table « mére », alors que la table « Commandes » est la table « fille ».
Table « Personnes »
L’instruction suivante crée une nouvelle table nommée « Personnes »:
CREATE TABLE Personnes ( PersonneID int AUTO_INCREMENT PRIMARY KEY, Nom VARCHAR(20) NOT NULL, Age int, Adresse VARCHAR(100) );
Table « Commandes »
Supposons que chaque personne a effectué des commandes. Pour stocker les commandes, vous pouvez créer une nouvelle table nommée « Commandes »:
CREATE TABLE Commandes ( CommandeID int AUTO_INCREMENT PRIMARY KEY, NumCommande int NOT NULL, PersonneID int, FOREIGN KEY (PersonneID) REFERENCES Personnes(PersonneID) );
La colonne « PersonneID » est une clé étrangère qui fait référence à la colonne « PersonneID » de la table « Personnes ». Nous avons utilisé la contrainte « Foreign Key » pour établir cette relation:
FOREIGN KEY (PersonneID) REFERENCES Personnes(PersonneID)