Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CN

🍟 完整的實體關係圖:麥當勞整合營運系統

(專注於訂單處理、客戶體驗與門市營運)


🔍 業務背景

此實體關係圖模擬門市的核心營運流程,包含麥當勞門市,重點包括:

  • 從顧客下單到付款的流程

  • 員工角色與門市管理

  • 菜單的可售性與定價

  • 顧客忠誠度與重複參與

  • 基本庫存追蹤(針對食品項目)

注意:這並非完整的企業資料庫(例如供應鏈或人力資源),而是針對速食店收銀系統所設計的真實且可擴展的基礎架構。


📚 實體與屬性

實體 屬性
顧客 顧客編號(主鍵),姓名,電話,電子郵件,忠誠點數,會員等級(例如:銅級、銀級)
門市 門市編號(主鍵),名稱,位置(地址),經理編號(外鍵 → 員工),營業時間,月營業額
員工 員工編號(主鍵),姓名,職位(收銀員、廚師、經理、主管),門市編號(外鍵),僱用日期,班表
菜單項目 菜單項目編號(主鍵),名稱,描述,價格,類別(漢堡、飲料、配菜、甜點),是否啟用,圖片網址
訂單 訂單編號(主鍵),下單時間,狀態(待處理 → 備料中 → 已完成 → 已完成 → 已取消),總金額,門市編號(外鍵),顧客編號(外鍵)
訂單項目 訂單項目編號(主鍵),訂單編號(外鍵),菜單項目編號(外鍵),數量,明細金額(自動計算)
付款 付款編號(主鍵),金額,付款方式(現金、信用卡、行動支付),交易編號,訂單編號(外鍵),時間戳記
推廣 推廣ID (主鍵),代碼(例如:「WELCOME10」),折扣類型(百分比、固定金額),折扣金額,生效日期,到期日期,適用範圍(例如:午餐、所有項目)

🔗 關係(含基數)

關係 基數 描述
顧客 → 訂單 1 → 0.. 顧客會在一段時間內下多筆訂單。
訂單 → 訂單項目 1 → 0.. 每筆訂單包含零項或更多菜單項目。
訂單 → 付款 1 → 1 每一筆完成的訂單都只有一筆付款。
訂單 → 店鋪 1 → 1 每筆訂單都是在某一特定店鋪下訂。
店鋪 → 員工 1 → 0.. 一家商店僱用多名員工(收銀員、廚師、經理)。
商店 → 訂單 1 → 0.. 一家商店會收到許多訂單。
菜單項目 → 訂單項目 1 → 0.. 一個菜單項目可以出現在多個訂單中。
促銷 → 訂單 0 → 1 促銷活動可能適用於訂單(例如:「買一送一」)。
員工 → 商店 1 → 1 每位員工只在一家商店工作。

✅ 可選: 添加一個忠誠度計劃若需更深入的忠誠度邏輯(例如積分兌換、獎勵),則需建立實體。


🔒 限制與商業規則

  • 價格必須大於 0

  • 若付款缺失,訂單狀態不能為「已完成」

  • 訂單項目中的數量必須大於等於 1

  • 促銷活動僅在生效且處於時間範圍內時方可套用

  • 顧客必須至少與一筆訂單關聯,才能累積忠誠度積分

  • 若餐點缺貨或停售,則標記為「無效」


📝 使用案例(為何此實體關係圖重要)

使用案例 效益
POS 系統設計 支援即時訂單追蹤、付款與收據產生
庫存警示 當某餐點被頻繁訂購時,需監控庫存水準
忠誠度計劃 追蹤積分累積,提供個人化折扣
門市分析 辨識熱門商品、業績高峰時段與受歡迎的促銷活動
員工管理 分配職位、追蹤班次、管理績效

📂 輸出格式

您可將下列任一內容複製貼上至您的文件、簡報或資料庫設計工具中。


✅ 1. 文字型實體關係圖(適用於文件)

實體:

- 顧客
  - 顧客編號(主鍵)
  - 姓名
  - 電話
  - 電子郵件
  - 忠誠度積分
  - 會員等級

- 門市
  - 門市編號(主鍵)
  - 名稱
  - 地點
  - 管理員編號(外鍵 → 員工)
  - 營業時間
  - 月營業額

- 員工
  - 員工編號(主鍵)
  - 姓名
  - 職位(收銀員、廚師、經理)
  - 門市編號(外鍵)
  - 到職日期

- 餐點
  - 餐點編號(主鍵)
  - 名稱
  - 描述
  - 價格
  - 分類
  - 是否有效

- 訂單
  - 訂單編號(主鍵)
  - 訂單時間
  - 狀態(待處理、準備中、已完成、已取消)
  - 顧客編號(外鍵)
  - 門市編號(外鍵)
  - 總金額

- 訂單項目
  - 訂單項目編號(主鍵)
  - 訂單編號(外鍵)
  - 餐點編號(外鍵)
  - 數量
  - 明細金額

- 付款
  - 付款編號(主鍵)
  - 金額
  - 付款方式(現金、信用卡、行動支付)
  - 訂單編號(外鍵)
  - 時間戳記

- 促銷活動
  - 促銷活動編號(主鍵)
  - 編碼
  - 折扣類型
  - 折扣金額
  - 生效日期
  - 結束日期
  - 適用範圍

關係:
- 顧客「1」--「0..*」訂單
- 訂單「1」--「0..*」訂單項目
- 訂單「1」--「1」付款
- 訂單「1」--「1」門市
- 門市「1」--「0..*」員工
- 餐點「1」--「0..*」訂單項目
- 促銷活動「0..*」--「1」訂單(依生效狀態條件決定)

✅ 2. Mermaid.js 版本(適用於 Markdown、Notion、Obsidian)

erDiagram
    CUSTOMER ||--o{ ORDER : "下訂單"
    STORE ||--o{ ORDER : "服務"
    STORE ||--o{ EMPLOYEE : "僱用"
    STORE ||--o{ MENU_ITEM : "販售"
    ORDER ||--o{ ORDER_ITEM : "包含"
    ORDER ||--o{ PAYMENT : "擁有"
    MENU_ITEM ||--o{ ORDER_ITEM : "出現在"
    PROMOTION ||--o{ ORDER : "適用於"

    CUSTOMER {
        int CustomerID PK
        string Name
        string Phone
        string Email
        int LoyaltyPoints
        string MembershipTier
    }

    STORE {
        int StoreID PK
        string Name
        string Location
        int ManagerID FK
        string OpenHours
        decimal MonthlySales
    }

    EMPLOYEE {
        int EmployeeID PK
        string Name
        string Role
        int StoreID FK
        date HireDate
    }

    MENU_ITEM {
        int MenuItemID PK
        string Name
        string Description
        decimal Price
        string Category
        boolean IsActive
    }

    ORDER {
        int OrderID PK
        datetime OrderTime
        string Status
        int CustomerID FK
        int StoreID FK
        decimal TotalAmount
    }

    ORDER_ITEM {
        int OrderItemID PK
        int OrderID FK
        int MenuItemID FK
        int Quantity
        decimal LineTotal
    }

    PAYMENT {
        int PaymentID PK
        decimal Amount
        string Method
        int OrderID FK
        datetime Timestamp
    }

    PROMOTION {
        int PromotionID PK
        string Code
        string DiscountType
        decimal DiscountValue
        datetime ActiveDate
        datetime ExpireDate
        string AppliesTo
    }


✅ 3. PlantUML 版本 

' McDonald's 訂單系統 ERD (PlantUML)

package "麥當勞營運" {
  entity "顧客" {
    - 客戶編號 (PK)
    - 姓名
    - 電話
    - 電子郵件
    - 忠誠度積分
    - 會員等級
  }

  entity "門市" {
    - 門市編號 (PK)
    - 名稱
    - 地點
    - 經理編號 (FK → 員工)
    - 營業時間
    - 月營業額
  }

  entity "員工" {
    - 員工編號 (PK)
    - 姓名
    - 職位 (收銀員、廚師、經理)
    - 門市編號 (FK → 門市)
    - 到職日期
  }

  entity "菜單項目" {
    - 菜單項目編號 (PK)
    - 名稱
    - 描述
    - 價格
    - 分類 (漢堡、飲料、配菜)
    - 是否有效
  }

  entity "訂單" {
    - 訂單編號 (PK)
    - 訂單時間
    - 狀態 (待處理、準備中、已完成、已結案)
    - 客戶編號 (FK → 顧客)
    - 門市編號 (FK → 門市)
    - 總金額
  }

  entity "訂單明細" {
    - 訂單明細編號 (PK)
    - 訂單編號 (FK → 訂單)
    - 菜單項目編號 (FK → 菜單項目)
    - 數量
    - 明細金額
  }

  entity "付款" {
    - 付款編號 (PK)
    - 金額
    - 支付方式 (現金、信用卡)
    - 訂單編號 (FK → 訂單)
    - 時間戳記
  }

  entity "促銷活動" {
    - 促銷活動編號 (PK)
    - 編碼 (例如:WELCOME10)
    - 折扣類型 (百分比、固定金額)
    - 折扣數值
    - 開始日期
    - 結束日期
    - 適用範圍
  }

  顧客 "1" -- "0..*" 訂單 : "下單"
  訂單 "1" -- "0..*" 訂單明細 : "包含"
  訂單 "1" -- "1" 付款 : "擁有"
  訂單 "1" -- "1" 門市 : "於此下單"
  門市 "1" -- "0..*" 員工 : "僱用"
  菜單項目 "1" -- "0..*" 訂單明細 : "出現在"
  促銷活動 "0..*" -- "1" 訂單 : "適用於"
}

 


🔍 未來擴展(可選)

如果您希望擴展此 ERD,可考慮新增:

  • 庫存 → 追蹤庫存水準、補貨點、供應商資訊

  • 班表 → 每日班次、休息時間、班次分配

  • 供應商 → 誰提供食材(例如:「起司供應商」)

  • 季節性菜單 → 特別促銷活動(例如:「夏季 BBQ 菜單」)

  • 地理定位 → 用於外送或取貨追蹤


🚀 最後想法

此 ERD 是 真實、可擴展,且符合麥當勞營運模式 — 它反映了實際的收銀系統流程、員工角色與顧客行為。

✅ 您現在擁有 完整且可立即使用的 ERD 用於麥當勞系統——無論是學校專案、商業分析或技術設計。

Sidebar Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...