
(Skupiony na przetwarzaniu zamówień, doświadczeniu klienta i operacjach sklepu)

Ten diagram relacji encji modeluje podstawowe operacje w sklepie McDonald’s, skupiając się na:
Przepływ zamówienia od klienta do płatności
Role pracowników i zarządzanie sklepem
Dostępność menu i ceny
Lojalność klientów i powtarzające się interakcje
Podstawowe śledzenie zapasów (dla produktów spożywczych)
Uwaga: Jest to nie pełna baza danych korporacyjna (np. łańcuch dostaw lub HR), ale realistyczna, skalowalna podstawa dla systemu kasowego w restauracji fast-food.
| Encja | Atrybuty |
|---|---|
| Klient | CustomerID (PK), Imię i nazwisko, Telefon, Email, Punkty lojalności, Poziom członkostwa (np. Brązowy, Srebrny) |
| Sklep | StoreID (PK), Nazwa, Lokalizacja (Adres), ManagerID (FK → Employee), Godziny otwarcia, Przychód całkowity (miesięczny) |
| Pracownik | EmployeeID (PK), Imię i nazwisko, Stanowisko (Kasjer, Kucharz, Menadżer, Nadzorca), StoreID (FK), Data zatrudnienia, Grafik pracy |
| Pozycja menu | MenuItemID (PK), Nazwa, Opis, Cena, Kategoria (Burger, Napój, Dodatki, Deser), Aktywny, URL obrazu |
| Zamówienie | OrderID (PK), Czas zamówienia, Status (Oczekujące → Przygotowywanie → Gotowe → Zakończone → Anulowane), Kwota całkowita, StoreID (FK), CustomerID (FK) |
| Pozycja zamówienia | OrderItemID (PK), OrderID (FK), MenuItemID (FK), Ilość, Kwota linii (obliczana automatycznie) |
| Płatność | PaymentID (PK), Kwota, Metoda (Gotówka, Karta kredytowa, MobilePay), ID transakcji, OrderID (FK), Czas |
| Promocja | PromocjaID (PK), Kod (np. „WELCOME10”), TypZniżki (Procentowa, Stała), WartośćZniżki, DataAktywacji, DataWygaśnięcia, Dotyczy (np. Obiad, WszystkiePozycje) |
| Relacja | Kardynalność | Opis |
|---|---|---|
Klient → Zamówienie |
1 → 0.. | Klient składa wiele zamówień w czasie. |
Zamówienie → PozycjaZamówienia |
1 → 0.. | Każde zamówienie zawiera zero lub więcej pozycji z menu. |
Zamówienie → Płatność |
1 → 1 | Każde ukończona zamówienie ma dokładnie jedną płatność. |
Zamówienie → Sklep |
1 → 1 | Każde zamówienie jest składane w jednym konkretnym sklepie. |
Sklep → Pracownik |
1 → 0.. | Sklep zatrudnia wielu pracowników (kasy, kucharze, menedżerowie). |
Sklep → Zamówienie |
1 → 0.. | Sklep otrzymuje wiele zamówień. |
Pozycja menu → Pozycja zamówienia |
1 → 0.. | Pozycja menu może pojawić się w wielu zamówieniach. |
Promocja → Zamówienie |
0 → 1 | Promocja może dotyczyć zamówienia (np. „Kup 1 Big Mac, drugi gratis”). |
Pracownik → Sklep |
1 → 1 | Każdy pracownik pracuje w jednym sklepie. |
✅ Opcjonalne: Dodaj
Program lojalnościowyencja, jeśli potrzebna jest głębsza logika lojalności (np. wymiana punktów, nagrody).
Cena musi być > 0
Status zamówienia nie może być „Zakończone”, jeśli brakuje płatności
Ilość w pozycji zamówienia ≥ 1
Promocje można stosować tylko wtedy, gdy są aktywne i wchodzą w okno czasowe
Klient musi być powiązany z co najmniej jednym zamówieniem, aby zdobywać punkty lojalnościowe
Pozycje menu są oznaczane jako „Nieaktywne”, jeśli brakują lub zostały zakończone
| Przypadek użycia | Zalety |
|---|---|
| Projekt systemu POS | Zezwala na śledzenie zamówień w czasie rzeczywistym, płatności i generowanie paragonów |
| Alerty inventarzowe | Gdy pozycja menu jest często zamówiona, monitoruj poziom zapasów |
| Programy lojalnościowe | Śledź gromadzenie punktów, oferuj indywidualne zniżki |
| Analizy sklepu | Identyfikuj najlepiej sprzedające się pozycje, godziny szczytu, popularne promocje |
| Zarządzanie personel | Przypisz role, śledź zmiany, zarządzaj wydajnością |
Możesz skopiować i wkleić dowolny z poniższych fragmentów do dokumentacji, prezentacji lub narzędzi projektowania bazy danych.
Encje:
- Klient
- CustomerID (PK)
- Imię
- Telefon
- Email
- Punkty lojalnościowe
- Poziom członkostwa
- Sklep
- StoreID (PK)
- Nazwa
- Lokalizacja
- ManagerID (FK → Pracownik)
- Godziny otwarcia
- Przychód miesięczny
- Pracownik
- EmployeeID (PK)
- Imię
- Stanowisko (Kasjer, Kucharz, Menadżer)
- StoreID (FK)
- Data zatrudnienia
- Pozycja menu
- MenuItemID (PK)
- Nazwa
- Opis
- Cena
- Kategoria
- IsActive
- Zamówienie
- OrderID (PK)
- Czas zamówienia
- Status (Oczekujące, Przygotowywane, Gotowe, Zakończone, Anulowane)
- CustomerID (FK)
- StoreID (FK)
- Całkowita kwota
- Pozycja zamówienia
- OrderItemID (PK)
- OrderID (FK)
- MenuItemID (FK)
- Ilość
- Kwota linii
- Płatność
- PaymentID (PK)
- Kwota
- Metoda (Gotówka, Karta kredytowa, MobilePay)
- OrderID (FK)
- Czas
- Promocja
- PromotionID (PK)
- Kod
- Typ zniżki
- Wartość zniżki
- Data aktywacji
- Data wygaśnięcia
- Dotyczy
Relacje:
- Klient "1" -- "0..*" Zamówienie
- Zamówienie "1" -- "0..*" Pozycja zamówienia
- Zamówienie "1" -- "1" Płatność
- Zamówienie "1" -- "1" Sklep
- Sklep "1" -- "0..*" Pracownik
- Pozycja menu "1" -- "0..*" Pozycja zamówienia
- Promocja "0..*" -- "1" Zamówienie (warunkowo w zależności od statusu aktywności)
erDiagram
KLIENCI ||--o{ ZAMÓWIENIA : "umieszcza"
SKLEPY ||--o{ ZAMÓWIENIA : "obsługuje"
SKLEPY ||--o{ PRACOWNICY : "zatrudnia"
SKLEPY ||--o{ POZYCJE_MENU : "sprzedaje"
ZAMÓWIENIA ||--o{ POZYCJE_ZAMÓWIENIA : "zawiera"
ZAMÓWIENIA ||--o{ PŁATNOŚCI : "ma"
POZYCJE_MENU ||--o{ POZYCJE_ZAMÓWIENIA : "występuje w"
PROMOCJE ||--o{ ZAMÓWIENIA : "dotyczy"
KLIENCI {
int CustomerID PK
string Name
string Phone
string Email
int LoyaltyPoints
string MembershipTier
}
SKLEPY {
int StoreID PK
string Name
string Location
int ManagerID FK
string OpenHours
decimal MonthlySales
}
PRACOWNICY {
int EmployeeID PK
string Name
string Role
int StoreID FK
date HireDate
}
POZYCJE_MENU {
int MenuItemID PK
string Name
string Description
decimal Price
string Category
boolean IsActive
}
ZAMÓWIENIA {
int OrderID PK
datetime OrderTime
string Status
int CustomerID FK
int StoreID FK
decimal TotalAmount
}
POZYCJE_ZAMÓWIENIA {
int OrderItemID PK
int OrderID FK
int MenuItemID FK
int Quantity
decimal LineTotal
}
PŁATNOŚCI {
int PaymentID PK
decimal Amount
string Method
int OrderID FK
datetime Timestamp
}
PROMOCJE {
int PromotionID PK
string Code
string DiscountType
decimal DiscountValue
datetime ActiveDate
datetime ExpireDate
string AppliesTo
}

' ERD systemu zamówień McDonald's (PlantUML)
package "Operacje McDonald's" {
entity "Klient" {
- CustomerID (PK)
- Imię i nazwisko
- Telefon
- Email
- Punkty lojalnościowe
- Poziom członkostwa
}
entity "Sklep" {
- StoreID (PK)
- Nazwa
- Lokalizacja
- ManagerID (FK → Pracownik)
- Godziny otwarcia
- Przychód miesięczny
}
entity "Pracownik" {
- EmployeeID (PK)
- Imię i nazwisko
- Stanowisko (Kasjer, Kucharz, Menadżer)
- StoreID (FK → Sklep)
- Data zatrudnienia
}
entity "Pozycja menu" {
- MenuItemID (PK)
- Nazwa
- Opis
- Cena
- Kategoria (Burger, Napój, Dodatek)
- Aktywny
}
entity "Zamówienie" {
- OrderID (PK)
- Czas zamówienia
- Status (Oczekujące, Przygotowywane, Gotowe, Zakończone)
- CustomerID (FK → Klient)
- StoreID (FK → Sklep)
- Całkowita kwota
}
entity "Pozycja zamówienia" {
- OrderItemID (PK)
- OrderID (FK → Zamówienie)
- MenuItemID (FK → Pozycja menu)
- Ilość
- Kwota częściowa
}
entity "Płatność" {
- PaymentID (PK)
- Kwota
- Metoda (Gotówka, Karta kredytowa)
- OrderID (FK → Zamówienie)
- Czas
}
entity "Promocja" {
- PromotionID (PK)
- Kod (np. WELCOME10)
- Typ zniżki (Procentowa, Stała)
- Wartość zniżki
- Data aktywacji
- Data wygaśnięcia
- Dotyczy
}
Klient "1" -- "0..*" Zamówienie : "zamawia"
Zamówienie "1" -- "0..*" Pozycja zamówienia : "zawiera"
Zamówienie "1" -- "1" Płatność : "ma"
Zamówienie "1" -- "1" Sklep : "zostaje złożone w"
Sklep "1" -- "0..*" Pracownik : "zatrudnia"
Pozycja menu "1" -- "0..*" Pozycja zamówienia : "występuje w"
Promocja "0..*" -- "1" Zamówienie : "ma zastosowanie do"
}
Jeśli chcesz rozszerzyć ten ERD, rozważ dodanie:
Inwentarz → Śledzi poziomy zapasów, punkty ponownego zlecania, informacje o dostawcach
Harmonogram zmian → Dzienne zmiany, przerwy, przyporządkowania do zmian
Dostawca → Kto dostarcza składniki (np. „Dostawca sera”)
Menu sezonowe → Specjalne promocje (np. „Menu BBQ letnie”)
Geolokalizacja → Do śledzenia dostawy lub odbioru
Ten ERD to realistyczny, skalowalny i zgodny z operacjami McDonald’s — odzwierciedla rzeczywiste przepływy pracy systemu POS, role pracowników i zachowania klientów.
✅ Teraz masz kompletny, gotowy do użycia ERD dla systemu McDonald’s — niezależnie czy do projektu szkolnego, analizy biznesowej czy projektu technicznego.