Leçon 1 / 9 — Chapitre 8: Mise en pratique : bibliothèque
Les tables livres, adhérents et emprunts
Ce chapitre introduit un nouveau scénario : une médiathèque, avec trois tables indépendantes du reste du catalogue.
livres
id | titre | auteur | genre | annee_publication
1 | Les Heures Silencieuses | Farel | roman | 2001
2 | Horizons Infinis | Delorme | science | 1980
3 | Le Pêcheur et le Large | Vasseur | roman | 1952
4 | Comprendre l'Univers | Norbert | science | 1988
5 | L'Éveil des Mondes | Kadiri | science-fiction | 1951
6 | Les Sables de Kaelis | Lenoir | science-fiction | 1965
adherents
id | nom | date_inscription
1 | Amara | 2022-03-01
2 | Koffi | 2022-06-15
3 | Nadia | 2023-01-10
4 | Samuel | 2023-05-20
5 | Yasmin | 2024-02-01
emprunts
id | livre_id | adherent_id | date_emprunt | date_retour_prevue | rendu
1 | 1 | 1 | 2024-01-05 | 2024-01-19 | true
2 | 1 | 2 | 2024-02-10 | 2024-02-24 | true
3 | 3 | 1 | 2024-03-01 | 2024-03-15 | false
4 | 4 | 3 | 2024-03-10 | 2024-03-24 | false
5 | 5 | 2 | 2024-03-20 | 2024-04-03 | true
6 | 6 | 4 | 2024-04-01 | 2024-04-15 | false
emprunts est une table de liaison : chaque ligne relie un livre précis à un adhérent précis, via deux clés étrangères (livre_id vers livres.id, adherent_id vers adherents.id). Un même livre peut apparaître dans plusieurs emprunts (à des adhérents différents, ou au même à des dates différentes), et un même adhérent peut emprunter plusieurs livres — c'est cette table qui rend possible une relation plusieurs-à-plusieurs entre livres et adherents, qu'aucune des deux tables ne pourrait exprimer seule.
À retenir :
- Une table de liaison relie deux tables par deux clés étrangères, une vers chacune.
- Elle permet une relation plusieurs-à-plusieurs : un livre a plusieurs emprunts, un adhérent aussi.
renduvautfalsetant que le livre n'a pas été rapporté — c'est cette colonne qui distingue un emprunt en cours d'un emprunt terminé.
À vous de jouer : comptez, dans emprunts, combien de lignes concernent l'adhérent Amara (id 1).
À vous de jouer
À faireVoici la table livres (extrait) :
livres
id | titre | auteur | genre | annee_publication
1 | Les Heures Silencieuses | Farel | roman | 2001
2 | Horizons Infinis | Delorme | science | 1980
3 | Le Pêcheur et le Large | Vasseur | roman | 1952
4 | Comprendre l'Univers | Norbert | science | 1988
5 | L'Éveil des Mondes | Kadiri | science-fiction | 1951
6 | Les Sables de Kaelis | Lenoir | science-fiction | 1965
Combien de livres cette table contient-elle ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 Un nombre.
À vous de jouer
À faireVoici la table emprunts :
emprunts
id | livre_id | adherent_id | date_emprunt | date_retour_prevue | rendu
1 | 1 | 1 | 2024-01-05 | 2024-01-19 | true
2 | 1 | 2 | 2024-02-10 | 2024-02-24 | true
3 | 3 | 1 | 2024-03-01 | 2024-03-15 | false
4 | 4 | 3 | 2024-03-10 | 2024-03-24 | false
5 | 5 | 2 | 2024-03-20 | 2024-04-03 | true
6 | 6 | 4 | 2024-04-01 | 2024-04-15 | false
Combien de lignes de emprunts concernent l'adhérent d'id 1 (Amara) ?
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 Un nombre.
À vous de jouer
À faireLa table emprunts contient-elle une clé étrangère vers adherents ? Répondez par oui ou non.
Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.
💡 Oui ou non.