Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_TW

🍟 全面的实体关系图:麦当劳整合运营系统

(专注于订单处理、客户体验与门店运营)


🔍 业务背景

此实体关系图模拟了门店的核心运营流程,包括麦当劳门店,重点包括:

  • 从顾客到支付的订单流程

  • 员工角色与门店管理

  • 菜单商品的可售性与定价

  • 客户忠诚度与重复参与

  • 基础库存跟踪(针对食品项目)

注:这不是一个完整的企业数据库(例如供应链或人力资源),而是快餐POS系统的一个真实且可扩展的基础。


📚 实体与属性

实体 属性
顾客 顾客ID(主键),姓名,电话,邮箱,忠诚度积分,会员等级(例如:青铜、白银)
门店 门店ID(主键),名称,位置(地址),经理ID(外键 → 员工),营业时间,月总销售额
员工 员工ID(主键),姓名,职位(收银员、厨师、经理、主管),门店ID(外键),入职日期,班次安排
菜单项 菜单项ID(主键),名称,描述,价格,类别(汉堡、饮品、配菜、甜点),是否启用,图片URL
订单 订单ID(主键),下单时间,状态(待处理 → 准备中 → 已准备好 → 已完成 → 已取消),总金额,门店ID(外键),顾客ID(外键)
订单项 订单项ID(主键),订单ID(外键),菜单项ID(外键),数量,小计金额(自动计算)
支付 支付ID(主键),金额,支付方式(现金、信用卡、移动支付),交易编号,订单ID(外键),时间戳
促销 促销ID(主键),代码(例如“WELCOME10”),折扣类型(百分比,固定金额),折扣金额,生效日期,过期日期,适用范围(例如:午餐,所有商品)

🔗 关系(带基数)

关系 基数 描述
客户 → 订单 1 → 0.. 客户会随时间下单多次。
订单 → 订单项 1 → 0.. 每个订单包含零个或多个菜单项。
订单 → 支付 1 → 1 每个完成的订单都有且仅有一个支付。
订单 → 门店 1 → 1 每个订单都在一个特定的门店下单。
门店 → 员工 1 → 0.. 一家商店雇佣多名员工(收银员、厨师、经理)。
商店 → 订单 1 → 0.. 一家商店会收到许多订单。
菜单项 → 订单项 1 → 0.. 一个菜单项可以出现在多个订单中。
促销 → 订单 0 → 1 促销可能适用于订单(例如:“买一送一”)。
员工 → 商店 1 → 1 每位员工在一家商店工作。

✅ 可选: 添加一个 忠诚度计划如果需要更复杂的忠诚度逻辑(例如积分兑换、奖励),则使用该实体。


🔒 约束与业务规则

  • 价格必须大于 0

  • 如果缺少付款,订单状态不能为“已完成”

  • 订单项中的数量 ≥ 1

  • 促销活动只有在生效且处于有效时间范围内时才能应用

  • 客户必须关联至少一个订单才能获得忠诚度积分

  • 如果菜单项缺货或已停售,则标记为“不活跃”


📝 使用场景(为何此ERD至关重要)

使用场景 优势
POS系统设计 支持实时订单追踪、支付及收据生成
库存警报 当某菜单项被频繁订购时,监控库存水平
忠诚度计划 追踪积分累积,提供个性化折扣
门店分析 识别畅销商品、高峰时段及热门促销
员工管理 分配角色、跟踪班次、管理绩效

📂 输出格式

您可以将以下任意内容复制并粘贴到您的文档、演示文稿或数据库设计工具中。


✅ 1. 文本型ERD(用于文档)

实体:

- 客户
  - 客户ID(主键)
  - 姓名
  - 电话
  - 邮箱
  - 忠诚度积分
  - 会员等级

- 门店
  - 门店ID(主键)
  - 名称
  - 地址
  - 经理ID(外键 → 员工)
  - 营业时间
  - 月销售额

- 员工
  - 员工ID(主键)
  - 姓名
  - 职位(收银员、厨师、经理)
  - 门店ID(外键)
  - 入职日期

- 菜品
  - 菜品ID(主键)
  - 名称
  - 描述
  - 价格
  - 分类
  - 是否激活

- 订单
  - 订单ID(主键)
  - 订单时间
  - 状态(待处理、准备中、已就绪、已完成、已取消)
  - 客户ID(外键)
  - 门店ID(外键)
  - 总金额

- 订单项
  - 订单项ID(主键)
  - 订单ID(外键)
  - 菜品ID(外键)
  - 数量
  - 小计

- 支付
  - 支付ID(主键)
  - 金额
  - 支付方式(现金、信用卡、移动支付)
  - 订单ID(外键)
  - 时间戳

- 促销活动
  - 促销ID(主键)
  - 代码
  - 折扣类型
  - 折扣值
  - 生效日期
  - 过期日期
  - 适用范围

关系:
- 客户 "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 版本 

' 麦当劳订单系统 ERD(PlantUML)

package "麦当劳运营" {
  entity "顾客" {
    - 客户ID(主键)
    - 姓名
    - 电话
    - 邮箱
    - 积分
    - 会员等级
  }

  entity "门店" {
    - 门店ID(主键)
    - 名称
    - 地点
    - 经理ID(外键 → 员工)
    - 营业时间
    - 月销售额
  }

  entity "员工" {
    - 员工ID(主键)
    - 姓名
    - 职位(收银员、厨师、经理)
    - 门店ID(外键 → 门店)
    - 入职日期
  }

  entity "菜单项" {
    - 菜单项ID(主键)
    - 名称
    - 描述
    - 价格
    - 分类(汉堡、饮品、配菜)
    - 是否有效
  }

  entity "订单" {
    - 订单ID(主键)
    - 订单时间
    - 状态(待处理、准备中、已准备好、已完成)
    - 客户ID(外键 → 顾客)
    - 门店ID(外键 → 门店)
    - 总金额
  }

  entity "订单项" {
    - 订单项ID(主键)
    - 订单ID(外键 → 订单)
    - 菜单项ID(外键 → 菜单项)
    - 数量
    - 小计
  }

  entity "支付" {
    - 支付ID(主键)
    - 金额
    - 支付方式(现金、信用卡)
    - 订单ID(外键 → 订单)
    - 时间戳
  }

  entity "促销活动" {
    - 促销ID(主键)
    - 代码(例如:WELCOME10)
    - 折扣类型(百分比、固定金额)
    - 折扣值
    - 生效日期
    - 过期日期
    - 适用范围
  }

  顾客 "1" -- "0..*" 订单 : "下单"
  订单 "1" -- "0..*" 订单项 : "包含"
  订单 "1" -- "1" 支付 : "拥有"
  订单 "1" -- "1" 门店 : "下单于"
  门店 "1" -- "0..*" 员工 : "雇佣"
  菜单项 "1" -- "0..*" 订单项 : "出现在"
  促销活动 "0..*" -- "1" 订单 : "适用于"
}

 


🔍 未来扩展(可选)

如果您希望扩展此 ERD,可考虑添加:

  • 库存 → 跟踪库存水平、补货点、供应商信息

  • 班次安排 → 每日班次、休息时间、班次分配

  • 供应商 → 谁提供食材(例如:“奶酪供应商”)

  • 季节性菜单 → 特别促销(例如:“夏季烧烤菜单”)

  • 地理定位 → 用于配送或自取追踪


🚀 最后思考

此 ERD 是 真实、可扩展,并与麦当劳的运营相符 — 它反映了实际的收银系统流程、员工角色和客户行为。

✅ 您现在拥有一个 完整、可直接使用的 ERD 用于麦当劳系统——无论是学校项目、商业分析还是技术设计。

Sidebar Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...