Leçon 8 / 9 — Chapitre 8: Mise en pratique : hôtellerie
Vue matérialisée : un rapport mensuel figé
Comme au chapitre 5, une vue matérialisée fige le résultat d'un calcul coûteux — ici, le revenu mensuel — plutôt que de le recalculer à chaque interrogation.
CREATE MATERIALIZED VIEW rapport_mensuel AS
SELECT DATE_TRUNC('month', r.date_arrivee) AS mois, SUM(r.nb_nuits * c.prix_nuit) AS revenu_total
FROM reservations r
JOIN chambres c ON r.chambre_id = c.id
WHERE r.statut = 'confirmee'
GROUP BY DATE_TRUNC('month', r.date_arrivee);
Au moment de sa création, rapport_mensuel contient les mêmes valeurs que la CTE de la leçon 2 (juin = 1060, juillet = 420, août = 240). Si une nouvelle réservation confirmée était ajoutée pour juillet après cette création, le revenu de juillet dans rapport_mensuel ne changerait pas automatiquement — un REFRESH MATERIALIZED VIEW rapport_mensuel; serait nécessaire pour le mettre à jour.
À retenir :
- Une vue matérialisée convient bien à un rapport consulté souvent mais recalculé rarement, comme un bilan mensuel.
- Sans
REFRESH, son contenu reste celui du dernier calcul, même si de nouvelles réservations sont ajoutées entre-temps.
À vous de jouer : après l'ajout d'une nouvelle réservation confirmée pour juin, quelle instruction faudrait-il exécuter pour que rapport_mensuel reflète ce changement ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès