🍟 Umfassender ERD: McDonald’s integriertes Operations-System

(Fokussiert auf Auftragsabwicklung, Kundenerfahrung und Filialoperationen)


🔍 Geschäftskontext

Dieses Entity-Relationship-Diagramm modelliert die Kernoperationen in einerMcDonald’s-Filiale, fokussiert auf:

  • Auftragsabwicklung vom Kunden bis zur Zahlung

  • Mitarbeiterrollen und Filialverwaltung

  • MenĂĽverfĂĽgbarkeit und Preise

  • Kundenbindung und wiederholte Engagement

  • Grundlegende Bestandsverfolgung (fĂĽr Lebensmittel)

Hinweis: Dies ist kein vollständiges Unternehmensdatenbank (z. B. Lieferkette oder HR), sondern eine realistische, skalierbare Grundlage für ein Fast-Food-POS-System.


📚 Entitäten & Attribute

Entität Attribute
Kunde KundenID (PK), Name, Telefon, E-Mail, Treuepunkte, Mitgliedstufe (z. B. Bronze, Silber)
Filiale FilialID (PK), Name, Standort (Adresse), FilialleiterID (FK → Mitarbeiter), Öffnungszeiten, Gesamtumsatz (monatlich)
Mitarbeiter MitarbeiterID (PK), Name, Rolle (Kassierer, Koch, Manager, Aufsicht), FilialID (FK), Einstellungsdatum, Schichtplan
Menüpunkt MenüpunktID (PK), Name, Beschreibung, Preis, Kategorie (Burger, Getränk, Beilage, Dessert), Aktiv, Bild-URL
Auftrag AuftragsID (PK), Auftragszeit, Status (Ausstehend → Zubereitung → Bereit → Abgeschlossen → Storniert), Gesamtbetrag, FilialID (FK), KundenID (FK)
Auftragsposition AuftragspositionID (PK), AuftragsID (FK), MenĂĽpunktID (FK), Menge, Zeilenbetrag (automatisch berechnet)
Zahlung ZahlungsID (PK), Betrag, Methode (Bar, Kreditkarte, MobilePay), TransaktionsID, AuftragsID (FK), Zeitstempel
Aktion AktionID (PK), Code (z. B. „WELCOME10“), Rabattart (Prozentsatz, Festbetrag), Rabattwert, Gültigkeitsdatum, Ablaufdatum, GiltFür (z. B. Mittagessen, Alle Artikel)

🔗 Beziehungen (mit Kardinalitäten)

Beziehung Kardinalität Beschreibung
Kunde → Bestellung 1 → 0.. Ein Kunde stellt im Laufe der Zeit mehrere Bestellungen auf.
Bestellung → Bestellartikel 1 → 0.. Jede Bestellung enthält null oder mehr Menüartikel.
Bestellung → Zahlung 1 → 1 Jede abgeschlossene Bestellung hat genau eine Zahlung.
Bestellung → Laden 1 → 1 Jede Bestellung wird an einem bestimmten Laden aufgegeben.
Laden → Mitarbeiter 1 → 0.. Ein Laden beschäftigt mehrere Mitarbeiter (Kassierer, Köche, Manager).
Laden → Bestellung 1 → 0.. Ein Laden erhält viele Bestellungen.
Speisekartenartikel → Bestellartikel 1 → 0.. Ein Speisekartenartikel kann in mehreren Bestellungen erscheinen.
Aktion → Bestellung 0 → 1 Eine Aktion kann auf eine Bestellung angewendet werden (z. B. „Kaufen Sie 1 Big Mac, erhalten Sie 1 kostenlos“).
Mitarbeiter → Laden 1 → 1 Jeder Mitarbeiter arbeitet in einem Laden.

✅ Optional: Fügen Sie eine „TreueprogrammEntität, falls tiefere Treue-Logik benötigt wird (z. B. Punkteeinlösung, Belohnungen).


🔒 Einschränkungen und Geschäftsregeln

  • Der Preis muss > 0 sein

  • Der Bestellstatus kann nicht auf „Abgeschlossen“ gesetzt werden, wenn die Zahlung fehlt

  • Menge in Bestellposition ≥ 1

  • Aktionen können nur angewendet werden, wenn sie aktiv sind und im Zeitfenster liegen

  • Der Kunde muss mindestens einer Bestellung zugeordnet sein, um Treuepunkte zu erhalten

  • MenĂĽartikel werden als „Inaktiv“ gekennzeichnet, wenn sie ausverkauft oder eingestellt sind


📝 Anwendungsfälle (Warum dieses ERD wichtig ist)

Anwendungsfall Vorteil
POS-Systemgestaltung Ermöglicht die Echtzeit-Verfolgung von Bestellungen, Zahlungen und die Erstellung von Belegen
Lagerbestandsbenachrichtigungen Wenn ein Menüartikel häufig bestellt wird, überwachen Sie die Lagerbestände
Treueprogramme Verfolgen der Punktansammlung, Angebot von personalisierten Rabatten
Filanalytik Identifizieren Sie die meistverkauften Artikel, Spitzenzeiten und beliebte Aktionen
Mitarbeitermanagement Rollen zuweisen, Schichten verfolgen, Leistung verwalten

đź“‚ Ausgabeformate

Sie können eines der folgenden Elemente in Ihre Dokumentation, Präsentation oder Datenbank-Design-Tools kopieren und einfügen.


✅ 1. Textbasiertes ERD (für Dokumentation)

Entitäten:

- Kunde
  - KundenID (PK)
  - Name
  - Telefon
  - E-Mail
  - Treuepunkte
  - Mitgliedstufe

- Filiale
  - FilialID (PK)
  - Name
  - Standort
  - LeiterID (FK → Mitarbeiter)
  - Ă–ffnungszeiten
  - Monatlicher Umsatz

- Mitarbeiter
  - MitarbeiterID (PK)
  - Name
  - Rolle (Kassierer, Koch, Leiter)
  - FilialID (FK)
  - Einstellungsdatum

- MenĂĽartikel
  - MenĂĽartikelID (PK)
  - Name
  - Beschreibung
  - Preis
  - Kategorie
  - IstAktiv

- Bestellung
  - BestellungsID (PK)
  - Bestellzeitpunkt
  - Status (Ausstehend, In Vorbereitung, Bereit, Abgeschlossen, Storniert)
  - KundenID (FK)
  - FilialID (FK)
  - Gesamtsumme

- Bestellposition
  - BestellpositionsID (PK)
  - BestellungsID (FK)
  - MenĂĽartikelID (FK)
  - Menge
  - Zeilenbetrag

- Zahlung
  - ZahlungsID (PK)
  - Betrag
  - Methode (Bar, Kreditkarte, MobilePay)
  - BestellungsID (FK)
  - Zeitstempel

- Aktion
  - AktionID (PK)
  - Code
  - Rabattart
  - Rabattwert
  - Aktivitätsdatum
  - Ablaufdatum
  - GiltFĂĽr

Beziehungen:
- Kunde "1" -- "0..*" Bestellung
- Bestellung "1" -- "0..*" Bestellposition
- Bestellung "1" -- "1" Zahlung
- Bestellung "1" -- "1" Filiale
- Filiale "1" -- "0..*" Mitarbeiter
- MenĂĽartikel "1" -- "0..*" Bestellposition
- Aktion "0..*" -- "1" Bestellung (bedingt durch Aktivitätsstatus)

✅ 2. Mermaid.js-Version (für Markdown, Notion, Obsidian)

erDiagram
    KUNDE ||--o{ BESTELLUNG : "platziert"
    FILIALE ||--o{ BESTELLUNG : "bedient"
    FILIALE ||--o{ MITARBEITER : "beschäftigt"
    FILIALE ||--o{ MENĂśARTIKEL : "verkauft"
    BESTELLUNG ||--o{ BESTELLPOSITION : "enthält"
    BESTELLUNG ||--o{ ZAHLUNG : "hat"
    MENĂśARTIKEL ||--o{ BESTELLPOSITION : "erscheint in"
    AKTION ||--o{ BESTELLUNG : "wird angewendet auf"

    KUNDE {
        int KundenID PK
        string Name
        string Telefon
        string E-Mail
        int Treuepunkte
        string Mitgliedstufe
    }

    FILIALE {
        int FilialID PK
        string Name
        string Standort
        int LeiterID FK
        string Ă–ffnungszeiten
        decimal MonatlicherUmsatz
    }

    MITARBEITER {
        int MitarbeiterID PK
        string Name
        string Rolle
        int FilialID FK
        date Einstellungsdatum
    }

    MENĂśARTIKEL {
        int MenĂĽartikelID PK
        string Name
        string Beschreibung
        decimal Preis
        string Kategorie
        boolean IstAktiv
    }

    BESTELLUNG {
        int BestellungsID PK
        datetime Bestellzeitpunkt
        string Status
        int KundenID FK
        int FilialID FK
        decimal Gesamtsumme
    }

    BESTELLPOSITION {
        int BestellpositionsID PK
        int BestellungsID FK
        int MenĂĽartikelID FK
        int Menge
        decimal Zeilenbetrag
    }

    ZAHLUNG {
        int ZahlungsID PK
        decimal Betrag
        string Methode
        int BestellungsID FK
        datetime Zeitstempel
    }

    AKTION {
        int AktionID PK
        string Code
        string Rabattart
        decimal Rabattwert
        datetime Aktivitätsdatum
        datetime Ablaufdatum
        string GiltFĂĽr
    }


✅ 3. PlantUML Version 

' McDonald's Bestellsystem ERD (PlantUML)

package "McDonald's Betrieb" {
  entity "Kunde" {
    - KundenID (PK)
    - Name
    - Telefon
    - E-Mail
    - Treuepunkte
    - Mitgliedstufe
  }

  entity "Laden" {
    - LadenID (PK)
    - Name
    - Standort
    - LeiterID (FK → Mitarbeiter)
    - Ă–ffnungszeiten
    - Monatlicher Umsatz
  }

  entity "Mitarbeiter" {
    - MitarbeiterID (PK)
    - Name
    - Rolle (Kassierer, Koch, Leiter)
    - LadenID (FK → Laden)
    - Einstellungsdatum
  }

  entity "MenĂĽpunkt" {
    - MenĂĽpunktID (PK)
    - Name
    - Beschreibung
    - Preis
    - Kategorie (Burger, Getränk, Beilage)
    - Aktiv
  }

  entity "Bestellung" {
    - BestellungsID (PK)
    - Bestellzeit
    - Status (Ausstehend, Zubereitung, Bereit, Abgeschlossen)
    - KundenID (FK → Kunde)
    - LadenID (FK → Laden)
    - Gesamtsumme
  }

  entity "Bestellposition" {
    - BestellpositionsID (PK)
    - BestellungsID (FK → Bestellung)
    - MenüpunktID (FK → Menüpunkt)
    - Menge
    - Zeilenbetrag
  }

  entity "Zahlung" {
    - ZahlungsID (PK)
    - Betrag
    - Methode (Bar, Kreditkarte)
    - BestellungsID (FK → Bestellung)
    - Zeitstempel
  }

  entity "Aktion" {
    - AktionID (PK)
    - Code (z. B. WELCOME10)
    - Rabattart (Prozentsatz, Festbetrag)
    - Rabattwert
    - GĂĽltigkeitsdatum
    - Ablaufdatum
    - Gilt fĂĽr
  }

  Kunde "1" -- "0..*" Bestellung : "stellt auf"
  Bestellung "1" -- "0..*" Bestellposition : "enthält"
  Bestellung "1" -- "1" Zahlung : "hat"
  Bestellung "1" -- "1" Laden : "wird aufgestellt in"
  Laden "1" -- "0..*" Mitarbeiter : "beschäftigt"
  MenĂĽpunkt "1" -- "0..*" Bestellposition : "erscheint in"
  Aktion "0..*" -- "1" Bestellung : "wird angewendet auf"
}

 


🔍 Zukünftige Erweiterungen (Optional)

Wenn Sie diese ERD erweitern möchten, überlegen Sie bitte folgende Ergänzungen:

  • Lagerbestand → Verfolgt Lagerbestände, Nachbestellpunkte und Lieferanteninformationen

  • Schichtplan → Tägliche Schichten, Pausenzeiten und Schichtzuweisungen

  • Lieferant → Wer liefert Zutaten (z. B. „Käfelieferant“)

  • Saisonale MenĂĽs → Sonderaktionen (z. B. „Sommer-Grillmenü“)

  • Geolokalisierung → FĂĽr Liefer- oder Abholverfolgung


🚀 Abschließende Gedanken

Diese ERD ist realistisch, skalierbar und an McDonald’s Abläufe angepasst — sie spiegelt tatsächliche POS-Abläufe, Mitarbeiterrollen und Kundenverhalten wider.

✅ Sie verfügen nun über eine komplette, sofort nutzbare ERD für ein McDonald’s-System – egal ob für ein Schulprojekt, eine Geschäftsanalyse oder eine technische Gestaltung.