Skip to content

核心数据模型与规则定义

版本信息

  • 版本号: v1.3
  • 状态: 状态
  • 最后更新: 2026-01-29
  • 变更摘要: [v1.3] 细节优化与去英化:商家补充负责人姓名;用户细化点位记录逻辑(记录次末消费点位);订单补充原价及优惠金额;全局标题移除英文标注。
  • 变更摘要 (历史): [v1.2] 优化:商家增加证照图,点位增加经纬坐标;用户体系重构。
  • 变更摘要 (历史): [v1.1] 逻辑修复:User ID 解耦 OpenID。

一、 全局 E-R 关系图


二、 核心实体定义

1. 商家

定义:具备独立生产能力与财务结算资格的供应实体。

字段名类型必填说明示例
merchant_idString(32)Y主键,UUIDM_2026001
nameString(64)Y商家简称(C 端可见)川湘小炒
business_license_nameString(100)Y工商注册名称(结算用)上海某某餐饮管理有限公司
license_img_urlString(255)N营业执照图片https://.../lic.jpg
permit_img_urlString(255)N经营许可证图片https://.../per.jpg
health_cert_img_urlJSONN健康证图片序列["https://.../h.jpg"]
contact_nameString(32)Y负责人姓名张三
contact_phoneString(20)Y负责人电话13800000000
statusEnumY状态:ONLINE(在线), OFFLINE(下线), PAUSED(暂停供餐)ONLINE

2. 点位

定义:拥有固定物理位置、部署了物联网设备的运营单元。

字段名类型必填说明示例
point_idString(32)Y主键,UUIDP_SH_001
nameString(64)Y点位展示名称腾飞大厦 A 座大堂
addressString(255)Y详细地址静安区某某路 88 号
longitudeDecimal(10,7)Y经度坐标121.4737
latitudeDecimal(10,7)Y纬度坐标31.2304
bound_merchant_idString(32)Y固定绑定商家 (当前主力对应的商家)M_2026001
capacityIntN规划容量(车位数)2
unified_priceDecimal(10,2)Y统一称重单价 (元/50g)3.18

3. 用户

定义:在平台产生消费行为的自然人。

3.1 t_user (用户主表)

字段名类型必填说明示例
user_idString(32)Y用户主键,内部 UUIDU_2026001
nicknameString(64)N用户昵称 (支持手动修改)Leo
phoneString(64)N手机号 (加密存储)Encrypt(138...)
bound_point_idString(32)N常驻/偏好点位 (用户主观选择或最常用)P_SH_001
last_other_point_idString(32)N次末消费点位 (除当前偏好点位外的最后消费点)P_SH_002
register_sourceEnumY注册来源 (SCAN: 扫码, SHARE: 分享)SCAN
first_point_idString(32)N首次进入系统的点位 IDP_SH_001
created_atDatetimeY注册时间 (账号初次创建时间)2026-02-01 10:00:00
last_consumption_atDatetimeN最后消费时间2026-02-28 12:10:00

3.2 t_user_binding (多渠道绑定表)

字段名类型必填说明示例
binding_idString(32)Y映射主键B_1001
user_idString(32)Y指向用户主表 IDU_2026001
channelEnumY渠道标识 (WX: 微信, ALIPAY: 支付宝)WX
channel_user_idString(64)Y第三方平台用户 ID (OpenID/BuyerID)oX9s...

4. 智能设备

定义:现场硬件资产,关联物理位置与管理主体。

字段名类型必填说明示例
device_idString(32)Y内部主键D_001
device_noString(32)Y设备编号 (系统资产号)EQ2026001
factory_snString(64)Y出厂序列号SN_HK_9921
modelString(32)Y设备型号SM-E1-Pro
typeEnumY设备类型 (称重机/扫码盒/餐车)SCALE
bind_point_idString(32)Y归属点位P_SH_001
bind_merchant_idString(32)N所属商家 (管理责任方)M_2026001
versionString(32)N软件版本号v1.2.4
owner_nameString(32)N负责人/保管人姓名李工
add_timeDatetimeY设备添加时间2026-01-15 09:00
last_online_atDatetimeN最后心跳活跃时间2026-02-28 12:00
last_order_atDatetimeN设备端最后消费日期2026-02-28
statusIntY状态 (1:在线 0:离线 2:报修)1

5. 交易订单

定义:包含核心金额维度与环境快照的交易记录。

字段名类型必填说明示例
order_idString(32)Y主键ORD_2026...
order_typeEnumY订单类型 (WEIGH: 称重, SCAN: 扫码)WEIGH
user_idString(32)Y用户 IDU_2026001
point_snapshotJSONY点位快照 (包含 ID 及当时名称){"id":"P_01","name":"腾飞"}
merchant_snapshotJSONY商家快照 (包含 ID 及当时名称){"id":"M_01","name":"川湘"}
unit_priceDecimalY价格快照 (元/50g)3.18
original_amountDecimalY订单原价 (称重克数 * 单价)18.06
discount_amountDecimalN优惠金额 (各类券/核减)3.00
pay_amountDecimalY实付金额15.06
third_party_noString(64)N外部流水号 (微信/支付宝交易单号)420000123...
pay_channelEnumY支付渠道 (WX: 微信, ALIPAY: 支付宝, OFFLINE: 线下)WX
statusIntY状态 (0: 待支付, 1: 成功, 2: 退款)1

三、 核心业务规则

BR01 - 排期互斥规则

  • 在同一个 [日期] + [餐段] + [点位] 下,系统仅允许存在 1条 有效商家排期,确保静态码路由唯一。

BR02 - 点位追踪规则

  • 字段逻辑
    • bound_point_id: 用户常用的“家”点位,决定小程序进入后的默认点位。
    • last_other_point_id: 记录用户最近一次在偏好点位以外的消费行为。例如:用户偏好“腾飞大厦”,但某日去“越洋广场”消费,此时该字段更新为“越洋广场”。这有助于分析用户的流动路径。

BR03 - 订单数据完整性 (快照原则)

  • 所有订单表必须独立存储当时的 单价商家/点位名称。不得仅存储 ID 进行关联查询,以防历史报表因商家改名或系统调价而失传。

BR04 - 注册与首次入场

  • created_at 记录用户账号创建的绝对时间。
  • first_point_id 记录该用户首次扫码进入系统时的地理坐标,辅助计算各点位的“获客贡献”。

BR05 - 支付账单核对

  • 所有 C 端订单包含“原价 - 优惠 = 实付”的标准结构,third_party_no 是与微信/支付宝后台对账的唯一硬链接。