Dans cette deuxième partie, nous allons créer la base de données depuis phpMyAdmin.
Commencez par créer une base de données nommée liste2courses
encodée en
utf8mb4_unicode_ci
.
La base de données sera constituée de 2 tables :
lists
contient le nom des listes de coursesarticles
contient la liste des articlesCréez les deux tables conformément à la représentation suivante. Dans chaque table,
id
est une clé primaire avec auto-incrémentation.
MySQL est un langage de base de données relationnel. En d'autres termes, il est possible de spécifier un lien entre deux tables. Ce lien présente de nombreux avantages, comme par exemple la supression en cascade des lignes de deux tables distinctes, mais liées par une relation. MySQL vérifie également que les liens de la base de données restent toujours cohérents.
Dans phpMyAdmin, rendez-vous dans l'onglet Structure
de la table articles
. Cliquez
sur le bouton Vue relationnelle
et créez un lien entre les champs articles.id_list
et lists.id
comme sur cet exemple :
Le résultat est un lien entre les deux tables. Le champ id_list
de la table articles
devra nécessairement correspondre à une clé primaire existante de la table list
:
Si vous tentez d'insérer une nouvelle ligne sans préciser une valeur de id_list
qui correspond à une ligne de la table lists
, mySQL ne créera pas la ligne et
retournera une des erreurs suivantes :
#1366 - Incorrect integer value: '' for column 'id_list' at row 1
. #1452 - Cannot add or update a child row: a foreign key constraint fails ('liste2courses'.'articles', CONSTRAINT 'articles_ibfk_1' FOREIGN KEY ('id_list') REFERENCES 'lists' ('id') ON DELETE CASCADE ON UPDATE CASCADE)
Cette dernière erreur mentionne que la clé étrangère viole la contrainte que vous avez ajouté précédemment.