Relation un à plusieurs (One to Many)
Une relation un à plusieurs est une relation entre deux tables dans une base de données relationnelle où une ligne d’une table (la table “un”) peut être liée à plusieurs lignes de l’autre table (la table “plusieurs”). Par exemple, si vous avez une table auteurs et une table livres, une relation un à plusieurs entre ces deux tables signifie qu’un auteur peut avoir écrit plusieurs livres, mais qu’un livre ne peut avoir qu’un seul auteur.
Pour créer une relation un à plusieurs entre deux tables dans MySQL, vous pouvez utiliser une clé étrangère. Une clé étrangère est une colonne dans la table “plusieurs” qui fait référence à la clé primaire de la table “un”. Cette clé étrangère crée un lien entre les deux tables et permet de s’assurer que les données sont cohérentes.
Voici un exemple de création d’une relation un à plusieurs entre une table auteurs et une table livres:
CREATE TABLE auteurs (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL
);
CREATE TABLE livres (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
auteur_id INT,
FOREIGN KEY (auteur_id) REFERENCES auteurs(id)
);
Dans cet exemple, nous avons créé deux tables: auteurs et livres. La table auteurs a une colonne id qui est la clé primaire de la table. La table livres a une colonne auteur_id qui est une clé étrangère faisant référence à la colonne id de la table auteurs. Cette clé étrangère crée une relation un à plusieurs entre les deux tables: un livre ne peut avoir qu’un seul auteur, mais un auteur peut avoir écrit plusieurs livres.
Pour insérer des données dans ces deux tables et créer des liens entre elles, vous pouvez utiliser des requêtes INSERT pour insérer des données dans les deux tables, en spécifiant la valeur de la clé étrangère pour lier les lignes des deux tables. Par exemple, pour insérer un auteur et deux livres écrits par cet auteur, vous pouvez utiliser les requêtes suivantes:
INSERT INTO auteurs (nom) VALUES ('J.K. Rowling');
INSERT INTO livres (titre, auteur_id) VALUES ('Harry Potter à l\'école des sorciers', 1);
INSERT INTO livres (titre, auteur_id) VALUES ('Harry Potter et la Chambre des Secrets', 1);
Ces requêtes insèrent un nouvel auteur dans la table auteurs, puis insèrent deux nouveaux livres dans la table livres, en spécifiant la valeur de la colonne auteur_id pour lier ces livres à l’auteur que nous venons d’insérer.
Voici un schéma pour illustrer une relation un à plusieurs (one-to-many) avec MySQL:
Dans cet exemple, nous avons deux tables: Auteurs et Livres. La table Auteurs a une colonne id qui est la clé primaire de la table. La table Livres a une colonne auteur_id qui est une clé étrangère faisant référence à la colonne id de la table Auteurs. Cette clé étrangère crée une relation un à plusieurs entre les deux tables: un livre ne peut avoir qu’un seul auteur, mais un auteur peut avoir écrit plusieurs livres.
Résumé
Pour créer une relation un à plusieurs (one-to-many) dans une base de données MySQL, vous pouvez suivre les étapes suivantes:
- Créez les deux tables qui seront impliquées dans la relation. L’une des tables représentera l’entité “un” et l’autre représentera l’entité “plusieurs”.
- Ajoutez une clé étrangère à la table “plusieurs” qui fera référence à la clé primaire de la table “un”. Cette clé étrangère crée un lien entre les deux tables et permet de s’assurer que les données sont cohérentes.
- Utilisez la commande
ADD FOREIGN KEYpour définir une contrainte de clé étrangère entre la clé étrangère de la table “plusieurs” et la clé primaire de la table “un”. Cette contrainte garantit que les valeurs de la clé étrangère dans la table “plusieurs” correspondent à des valeurs existantes dans la clé primaire de la table “un”. - Insérez des données dans les deux tables en spécifiant les valeurs appropriées pour la clé étrangère dans la table “plusieurs” pour lier les lignes des deux tables.
En suivant ces étapes, vous pouvez créer une relation un à plusieurs entre deux tables dans une base de données MySQL.