Étape 1 : Conception de Base de Données
Contexte
Vous êtes chargé(e) de concevoir la base de données pour l'application "EasyTable", un système de réservation en ligne pour restaurant. Cette application permettra aux clients de réserver une table et au restaurant de gérer ses réservations.
Objectifs pédagogiques
- Analyser un cahier des charges
- Identifier les entités et leurs relations
- Concevoir un schéma de base de données MySQL
- Appliquer les bonnes pratiques de conception
Votre mission
Étape 1 : Analyse du besoin
- Téléchargez le cahier des charges
- Identifiez les principaux acteurs du système
- Listez les informations essentielles à stocker pour chaque acteur
- Déterminez les actions possibles dans le système
Étape 2 : Identification des entités
À partir du cahier des charges, vous devez :
- Identifier les tables nécessaires (minimum 3 tables)
- Pour chaque table, lister les informations à stocker
- Définir le type de données approprié pour chaque information
Étape 3 : Conception
Pour chaque table, vous devez définir :
- Une clé primaire
- Les champs obligatoires
- Les contraintes d'unicité si nécessaires
- Les relations entre les tables
- Les clés étrangères appropriées
Étape 4 : Optimisation
Réfléchissez aux éléments suivants :
- Quels champs devront être indexés pour optimiser les recherches ?
- Quelles contraintes métier doivent être imposées (ex: nombre maximum de personnes) ?
- Comment gérer les dates et heures de réservation efficacement ?
Contraintes techniques
- Utilisez MySQL comme système de gestion de base de données
- Respectez les conventions de nommage (tout en minuscules, underscores pour les espaces)
- Utilisez les types de données appropriés (INT, VARCHAR, DATETIME, etc.)
- Prévoyez le suivi des dates de création et modification des enregistrements
Points d'attention
Votre conception doit permettre de :
- Gérer les utilisateurs (clients et administrateurs)
- Suivre les réservations
- Gérer les disponibilités
- Maintenir un historique des réservations
- Configurer les paramètres du restaurant (horaires, capacité, etc.)
Livrables attendus
- Le script SQL de création des tables
- Le schéma de la base de données (à générer avec l'IA depuis le script sql)
- Une brève justification de vos choix de conception
Conseils
- Commencez par identifier les entités principales avant d'ajouter les tables secondaires
- Réfléchissez aux requêtes qui seront fréquemment exécutées
- N'oubliez pas de gérer les suppressions (contraintes de clés étrangères)
- Pensez à la scalabilité de votre solution
Critères d'évaluation
- Pertinence des tables et des champs identifiés
- Cohérence des relations entre les tables
- Choix appropriés des types de données
- Respect des bonnes pratiques de conception
- Optimisation et indexation
- Qualité du script SQL
Temps limite ⏱️
Vous avez une semaine (17 février)