Un club, trois activités
Le club de sport du lycée propose du judo, de la natation et de l'escalade. Chaque élève peut faire plusieurs activités.
La responsable veut garder les inscriptions. Elle peut tout noter dans un seul tableau. Cela marche… un moment.
Avant de créer des tables, on dessine la base. Voyons comment faire.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Schéma | Le plan de la base : ses tables, ses colonnes et ses liens. | Un dessin avec des flèches. |
| Besoin | Ce que les gens veulent savoir ou faire avec les données. | Qui fait du judo ? |
| Table | Un tableau qui range un seul genre de choses. | adherents |
| Clé primaire | La colonne unique de chaque ligne. | id |
| Clé étrangère | La colonne qui garde le numéro d'une ligne d'une autre table. | activite_id |
| Doublon | La même information écrite plusieurs fois. | Le nom d'Emma recopié deux fois. |
| Un à plusieurs | Un lien où une ligne d'une table va avec plusieurs lignes d'une autre. | Un auteur, plusieurs livres. |
| Table de liaison | Une table qui relie deux autres, quand chaque côté peut avoir plusieurs lignes. | inscriptions |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Commencer par les besoins
Ne commence jamais par les tables. Commence par les questions que les gens vont poser.
Pour le club : Qui est inscrit au judo ? Quelles activités fait Emma ? Quel jour a lieu la natation ? Combien d'inscrits en escalade ?
Les mots qui reviennent dans ces questions sont les choses à ranger : les adhérents et les activités.
À toi : les choses à ranger
À toi de jouer
À toi : les choses à ranger
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Exemple travaillé : tout dans un tableau
| nom | prenom | activite | jour |
|---|---|---|---|
| Martin | Emma | Judo | mercredi |
| Martin | Emma | Natation | jeudi |
| Durand | Hugo | Judo | mercredi |
| Petit | Nina | Natation | jeudi |
| Petit | Nina | Escalade | vendredi |
| Roux | Lucas | Judo | mercredi |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Ce que le tableau unique cache
Regarde le tableau. Le nom d'Emma est écrit deux fois. Celui de Nina aussi. Et le jour du judo est écrit trois fois.
Si le judo passe au mardi, il faut corriger trois lignes. Si on en oublie une, la base se contredit.
Ce sont des doublons. Tu connais déjà le remède : une table par chose.
À toi : compter les lignes à changer
-- Tout le club dans une seule table.
SELECT * FROM inscriptions_vrac;
-- Si le judo passe au mardi, combien de lignes faut-il changer ?
SELECT COUNT(*) AS lignes_a_changer FROM inscriptions_vrac WHERE activite = 'Judo';
Une table par chose, une clé par table
On range chaque chose dans sa table. Les adhérents d'un côté, les activités de l'autre.
Chaque table reçoit une clé primaire, souvent un numéro id. Emma est écrite une seule fois. Le judo aussi, avec son jour.
Si tu changes le jour du judo, tu changes une seule ligne.
Relier les tables
Un auteur écrit plusieurs livres : c'est un lien un à plusieurs. La clé étrangère va dans la table du côté « plusieurs », ici livres.
Ici, c'est plus compliqué. Un adhérent fait plusieurs activités. Et une activité a plusieurs adhérents. C'est un lien plusieurs à plusieurs.
Aucune des deux tables ne peut porter la clé étrangère seule.