🍟 Modèle entitĂ©-association complet : système intĂ©grĂ© d’exploitation de McDonald’s

(AxĂ© sur le traitement des commandes, l’expĂ©rience client et les opĂ©rations en magasin)


🔍 Contexte commercial

Ce diagramme entité-association modélise les opérations essentielles dans unmagasin McDonald’s, axé sur :

  • Parcours de commande du client au paiement

  • RĂ´les des employĂ©s et gestion du magasin

  • DisponibilitĂ© et tarification du menu

  • FidĂ©litĂ© des clients et engagement rĂ©pĂ©tĂ©

  • Suivi basique des stocks (pour les articles alimentaires)

Remarque : Ce n’est pas une base de données d’entreprise complète (par exemple, chaîne d’approvisionnement ou RH), mais une base réaliste et évolutif pour un système de caisse rapide.


📚 Entités et attributs

Entité Attributs
Client CustomerID (Clé primaire), Nom, Téléphone, Email, Points de fidélité, Niveau d’abonnement (par exemple, Bronze, Argent)
Magasin StoreID (ClĂ© primaire), Nom, Localisation (Adresse), ManagerID (ClĂ© Ă©trangère → EmployĂ©), Heures d’ouverture, Chiffre d’affaires total (mensuel)
EmployĂ© EmployeeID (ClĂ© primaire), Nom, Fonction (Caissier, Cuisinier, GĂ©rant, Superviseur), StoreID (ClĂ© Ă©trangère), Date d’embauche, Planning de service
Article du menu MenuItemID (Clé primaire), Nom, Description, Prix, Catégorie (Burger, Boisson, Accompagnement, Dessert), Actif, URL de l’image
Commande OrderID (Clé primaire), Heure de commande, Statut (En attente → Préparation → Prêt → Terminé → Annulé), Montant total, StoreID (Clé étrangère), CustomerID (Clé étrangère)
Ligne de commande OrderItemID (Clé primaire), OrderID (Clé étrangère), MenuItemID (Clé étrangère), Quantité, Total ligne (calculé automatiquement)
Paiement PaymentID (Clé primaire), Montant, Méthode (Espèces, Carte bancaire, Paiement mobile), ID de transaction, OrderID (Clé étrangère), Horodatage
Promotion PromotionID (ClĂ© primaire), Code (par exemple « WELCOME10 »), Type de rĂ©duction (Pourcentage, Montant fixe), Valeur de la rĂ©duction, Date de validitĂ©, Date d’expiration, S’applique Ă  (par exemple : DĂ©jeuner, Tous les articles)

🔗 Relations (avec cardinalités)

Relation Cardinalité Description
Client → Commande 1 → 0.. Un client passe plusieurs commandes au fil du temps.
Commande → Élément de commande 1 → 0.. Chaque commande contient zéro ou plusieurs articles du menu.
Commande → Paiement 1 → 1 Chaque commande terminée a exactement un paiement.
Commande → Magasin 1 → 1 Chaque commande est passée dans un magasin spécifique.
Magasin → Employé 1 → 0.. Un magasin emploie plusieurs employés (caissiers, cuisiniers, gestionnaires).
Magasin → Commande 1 → 0.. Un magasin reçoit de nombreuses commandes.
Élément du menu → Élément de commande 1 → 0.. Un élément du menu peut apparaître dans plusieurs commandes.
Promotion → Commande 0 → 1 Une promotion peut s’appliquer Ă  une commande (par exemple, « Achetez 1 Big Mac, obtenez-en 1 gratuit »).
Employé → Magasin 1 → 1 Chaque employé travaille dans un seul magasin.

✅ Facultatif: Ajouter unProgramme de fidélitéentité si une logique de fidélité plus poussée est nécessaire (par exemple, échange de points, récompenses).


🔒 Contraintes et règles métier

  • Le prix doit ĂŞtre > 0

  • Le statut de la commande ne peut pas ĂŞtre « TerminĂ©e » si le paiement est manquant

  • La quantitĂ© dans OrderItem ≥ 1

  • Les promotions ne peuvent ĂŞtre appliquĂ©es que si elles sont actives et dans la fenĂŞtre temporelle

  • Le client doit ĂŞtre liĂ© Ă  au moins une commande pour accumuler des points de fidĂ©litĂ©

  • Les articles du menu sont marquĂ©s comme « Inactifs » s’ils sont en rupture de stock ou discontinuĂ©s


📝 Cas d’utilisation (Pourquoi cet ERD est important)

Cas d’utilisation Avantage
Conception du système de caisse (POS) Permet le suivi en temps réel des commandes, le paiement et la génération des reçus
Alertes de stock Lorsqu’un article du menu est commandĂ© frĂ©quemment, surveiller les niveaux de stock
Programmes de fidĂ©litĂ© Suivre l’accumulation de points, proposer des rĂ©ductions personnalisĂ©es
Analyse des magasins Identifier les articles les plus vendus, les heures de pointe, les promotions populaires
Gestion des employés Attribuer des rôles, suivre les plannings, gérer la performance

đź“‚ Formats de sortie

Vous pouvez copier et coller l’un des Ă©lĂ©ments suivants dans votre documentation, prĂ©sentation ou outils de conception de base de donnĂ©es.


✅ 1. ERD basé sur le texte (pour la documentation)

Entités :

- Client
  - CustomerID (Clé primaire)
  - Nom
  - Téléphone
  - Email
  - Points de fidélité
  - Niveau de membreship

- Magasin
  - StoreID (Clé primaire)
  - Nom
  - Localisation
  - ManagerID (Clé étrangère → Employé)
  - Heures d'ouverture
  - Ventes mensuelles

- Employé
  - EmployeeID (Clé primaire)
  - Nom
  - Rôle (Caissier, Cuisinier, Gérant)
  - StoreID (Clé étrangère)
  - Date d'embauche

- Article du menu
  - MenuItemID (Clé primaire)
  - Nom
  - Description
  - Prix
  - Catégorie
  - EstActif

- Commande
  - OrderID (Clé primaire)
  - OrderTime
  - Statut (En attente, En préparation, Prêt, Terminée, Annulée)
  - CustomerID (Clé étrangère)
  - StoreID (Clé étrangère)
  - Montant total

- Ligne de commande
  - OrderItemID (Clé primaire)
  - OrderID (Clé étrangère)
  - MenuItemID (Clé étrangère)
  - Quantité
  - Total ligne

- Paiement
  - PaymentID (Clé primaire)
  - Montant
  - Méthode (Espèces, Carte de crédit, MobilePay)
  - OrderID (Clé étrangère)
  - Timestamp

- Promotion
  - PromotionID (Clé primaire)
  - Code
  - Type de réduction
  - Valeur de réduction
  - Date d'activation
  - Date d'expiration
  - S'applique Ă 

Relations :
- Client "1" -- "0..*" Commande
- Commande "1" -- "0..*" Ligne de commande
- Commande "1" -- "1" Paiement
- Commande "1" -- "1" Magasin
- Magasin "1" -- "0..*" Employé
- Article du menu "1" -- "0..*" Ligne de commande
- Promotion "0..*" -- "1" Commande (conditionnel sur l'état actif)

✅ 2. Version Mermaid.js (pour Markdown, Notion, Obsidian)

erDiagram
    CLIENT ||--o{ COMMANDE : "place"
    MAGASIN ||--o{ COMMANDE : "sert"
    MAGASIN ||--o{ EMPLOYE : "emploie"
    MAGASIN ||--o{ ARTICLE_MENU : "vend"
    COMMANDE ||--o{ LIGNE_COMMANDE : "contient"
    COMMANDE ||--o{ PAIEMENT : "possède"
    ARTICLE_MENU ||--o{ LIGNE_COMMANDE : "apparaît dans"
    PROMOTION ||--o{ COMMANDE : "s'applique Ă "

    CLIENT {
        int CustomerID PK
        string Nom
        string Téléphone
        string Email
        int PointsFidelite
        string NiveauMembre
    }

    MAGASIN {
        int StoreID PK
        string Nom
        string Localisation
        int ManagerID FK
        string HeuresOuverture
        decimal VentesMensuelles
    }

    EMPLOYE {
        int EmployeeID PK
        string Nom
        string Role
        int StoreID FK
        date DateEmbauche
    }

    ARTICLE_MENU {
        int MenuItemID PK
        string Nom
        string Description
        decimal Prix
        string Categorie
        boolean EstActif
    }

    COMMANDE {
        int OrderID PK
        datetime DateCommande
        string Statut
        int CustomerID FK
        int StoreID FK
        decimal MontantTotal
    }

    LIGNE_COMMANDE {
        int OrderItemID PK
        int OrderID FK
        int MenuItemID FK
        int Quantite
        decimal TotalLigne
    }

    PAIEMENT {
        int PaymentID PK
        decimal Montant
        string Methode
        int OrderID FK
        datetime Timestamp
    }

    PROMOTION {
        int PromotionID PK
        string Code
        string TypeReduction
        decimal ValeurReduction
        datetime DateActivation
        datetime DateExpiration
        string SAppliqueA
    }


✅ 3. Version PlantUML 

' ERD du système de commande McDonald's (PlantUML)

package "Opérations McDonald's" {
  entity "Client" {
    - IDClient (PK)
    - Nom
    - Téléphone
    - Email
    - Points de fidélité
    - Niveau de membreship
  }

  entity "Magasin" {
    - IDMagasin (PK)
    - Nom
    - Localisation
    - IDGérant (FK → Employé)
    - Heures d'ouverture
    - Ventes mensuelles
  }

  entity "Employé" {
    - IDEmployé (PK)
    - Nom
    - Poste (Caissier, Cuisinier, Gérant)
    - IDMagasin (FK → Magasin)
    - Date d'embauche
  }

  entity "Article du menu" {
    - IDArticle (PK)
    - Nom
    - Description
    - Prix
    - Catégorie (Burger, Boisson, Accompagnement)
    - Actif
  }

  entity "Commande" {
    - IDCommande (PK)
    - Heure de commande
    - Statut (En attente, En préparation, Prête, Terminée)
    - IDClient (FK → Client)
    - IDMagasin (FK → Magasin)
    - Montant total
  }

  entity "Ligne de commande" {
    - IDLigneCommande (PK)
    - IDCommande (FK → Commande)
    - IDArticle (FK → Article du menu)
    - Quantité
    - Total ligne
  }

  entity "Paiement" {
    - IDPaiement (PK)
    - Montant
    - Méthode (Espèces, Carte de crédit)
    - IDCommande (FK → Commande)
    - Horodatage
  }

  entity "Promotion" {
    - IDPromotion (PK)
    - Code (ex. : WELCOME10)
    - Type de réduction (Pourcentage, Montant fixe)
    - Valeur de réduction
    - Date de validité
    - Date d'expiration
    - S'applique Ă 
  }

  Client "1" -- "0..*" Commande : "place"
  Commande "1" -- "0..*" Ligne de commande : "contient"
  Commande "1" -- "1" Paiement : "possède"
  Commande "1" -- "1" Magasin : "est passée dans"
  Magasin "1" -- "0..*" Employé : "emploie"
  Article du menu "1" -- "0..*" Ligne de commande : "apparaît dans"
  Promotion "0..*" -- "1" Commande : "s'applique Ă "
}

 


🔍 Extensions futures (facultatif)

Si vous souhaitez Ă©tendre cet ERD, envisagez d’ajouter :

  • Inventaire → Suivi des niveaux de stock, points de rĂ©approvisionnement, informations sur les fournisseurs

  • Planning des services → Services quotidiens, pauses, affectations de services

  • Fournisseur → Qui fournit les ingrĂ©dients (ex. : « Fournisseur de fromage »)

  • Menus saisonniers → Promotions spĂ©ciales (ex. : « Menu BBQ d’Ă©tĂ© »)

  • GĂ©olocalisation → Pour le suivi de livraison ou de retrait


🚀 Dernières réflexions

Cet ERD est rĂ©aliste, Ă©volutif et alignĂ© sur les opĂ©rations de McDonald’s — il reflète les flux rĂ©els du système de caisse, les rĂ´les des employĂ©s et le comportement des clients.

âś… Vous disposez maintenant d’un ERD complet, prĂŞt Ă  ĂŞtre utilisé pour un système McDonald’s — que ce soit pour un projet scolaire, une analyse commerciale ou une conception technique.