Partie 3 · Requêtes LoveBook
Du modèle LoveBook aux tables
L'exercice « Requests Facebook Events » dit : réalisez toutes les requêtes suite à la création de votre base ; elles servent à savoir si vous avez correctement constitué votre base et si votre modèle tient la route. Il faut donc d'abord traduire ton MCD en MPD, puis en tables. Cinq familles de requêtes sont demandées : SELECT (11 questions), DELETE (5), UPDATE (5), INSERT (5) et JOINT (9).
Le cours ne donne pas de corrigé de schéma. Pour t'exercer, ce site fournit un schéma simplifié (exemple ajouté, pas le corrigé du TP), avec des tables au pluriel :
utilisateurs(id, nom, prenom, email UNIQUE, ville)
groupes(id, nom, type)
evenements(id, titre, ville, date_debut, annule, #groupe_id)
participations(#utilisateur_id, #evenement_id, role, note)
albums(id, #evenement_id, titre)
photos(id, #album_id, #utilisateur_id, legende)
types_billets(id, #evenement_id, nom, montant, quantite)
billets(id, #type_billet_id, nom, prenom, date_achat)
covoiturages(id, #evenement_id, #utilisateur_id, ville_depart, places)Lis ce schéma avec les règles de la partie 1 : participations est une CIM (table dont la clé primaire est le couple de clés étrangères) ; albums, billets, photos… portent une clé étrangère (CIF). Un billet pointe vers son type, qui pointe vers l'événement : pour le chiffre d'affaires d'un événement il faut donc traverser deux tables.
Vérifie que tu as compris
participations a-t-elle pour clé primaire le couple (utilisateur_id, evenement_id) ?Règles d'or pour les requêtes de ce TP
- Écris la requête pas à pas : d'abord le
FROMet les jointures, puisWHERE,GROUP BY,HAVING,SELECT,ORDER BY. - Avant un
DELETEou unUPDATE, lance leSELECTéquivalent. - Les exercices tournent avec SQLite : les écarts avec MySQL sont signalés « hors cours ». Les seuils trop grands de l'énoncé (10 participants, 1000 €) sont réduits à notre petite base.
Vérifie que tu as compris