Files
zd_product_document/10-产品线/连锁业务对账系统/03-标准可扩展数据模型规划.md
2026-06-17 08:55:26 +08:00

14 KiB

连锁业务对账系统标准可扩展数据模型规划

1. 核心判断

连锁业务对账系统的长期难点,不只是接入某几个收银系统或结算渠道,而是建立一套标准、稳定、可扩展的数据模型。

原因在于:

  • 连锁企业业态会变化,餐饮、鞋服、零售、药店的订单结构不同。
  • 业务类型会变化,堂食、外卖、团购、电商、私域商城、储值、医保等场景不断增加。
  • 结算渠道会变化,支付渠道、平台渠道、聚合支付、银行入账、医保结算等渠道的账单格式和结算规则不同。
  • 渠道字段会变化,同一个渠道在不同时期也可能调整字段、账单类型、费用项和结算周期。

因此,系统设计不能以某个渠道账单字段作为核心模型,也不能为每个渠道单独建立一套对账逻辑。正确方向是:

以标准订单、标准账单、标准核销、标准差异、标准输出为主模型,以渠道适配层承接不断变化的外部渠道差异。

2. 数据模型设计目标

标准数据模型需要满足以下目标:

  • 支持多行业、多业务类型、多结算渠道。
  • 支持订单、组合支付、退款、手续费、佣金、补贴、入账等多类金额。
  • 支持渠道账单字段差异,但不让渠道差异污染核心核销模型。
  • 支持一笔订单包含多种支付方式、一笔订单对应一笔账单、一笔订单对应多笔账单、多笔订单对应一笔账单等匹配关系。
  • 支持跨日结算、分批结算、部分退款、补贴后结算、平台扣费后结算等复杂场景。
  • 支持对账结果向分账系统稳定输出,不因新增渠道而频繁改变接口。

3. 分层模型

对账系统的数据模型应分为四层:

层级 作用 典型数据
原始数据层 保留外部系统原始数据,便于追溯和重放 原始订单报文、原始账单文件、原始接口返回
标准明细层 将不同来源数据转换为系统统一模型 标准订单、标准支付明细、标准渠道账单、标准退款、标准费用
对账核销层 承载订单与账单的匹配、核销、差异和状态 核销记录、匹配关系、差异记录、处理记录
输出服务层 面向分账、报表、审计等下游系统输出稳定结果 可分账订单、对账结果、差异结果、报表指标

这种分层可以保证:外部渠道变化时,优先调整原始数据解析和标准化映射,不直接冲击核销规则、差异处理和分账输出。

4. 核心对象模型

4.1 标准订单

标准订单是对账系统的应收基础,描述业务订单“应该收多少钱”。

核心字段包括:

字段类别 字段示例 说明
业务标识 订单号、外部订单号、平台订单号 用于识别订单及与外部系统追溯
组织归属 品牌、区域、加盟商、门店、经营主体 用于数据权限、门店对账和分账归属
业务分类 行业、业务类型、订单来源平台 区分堂食、外卖、团购、电商、私域商城等场景
时间信息 订单发生时间、支付时间、退款时间 用于日结、月结和到账周期分析
金额信息 订单应收金额、实收金额、优惠金额、退款金额 用于与渠道账单核销
支付汇总 支付状态、支付总金额、支付方式数量 用于描述订单整体支付结果,不承载具体支付明细
状态信息 订单状态、支付状态、退款状态、对账状态 用于跟踪订单生命周期

标准订单不应直接承载具体支付渠道、支付流水和商户号。原因是一个订单可能包含多种支付方式,例如:

  • 三方团购券核销 + 在线支付
  • 三方团购券 + 在线支付 + 私域现金券
  • 会员储值余额 + 微信支付
  • 平台优惠券 + 商家优惠券 + 用户实付

具体支付构成应进入标准支付明细模型。

4.2 标准支付明细

标准支付明细描述一笔订单的支付构成,是连接订单应收、渠道账单和核销结果的关键中间模型。

一笔标准订单可以对应多条标准支付明细。每条支付明细代表一种支付方式、一种券核销、一种储值扣减或一种平台权益抵扣。

核心字段包括:

字段类别 字段示例 说明
关联标识 订单号、支付明细号、外部支付明细号 用于关联标准订单和外部支付记录
支付分类 支付大类、支付方式、支付来源平台 区分在线支付、团购券、现金券、储值、优惠券、医保等
渠道信息 支付渠道、商户号、渠道流水号、平台券码、核销码 用于匹配渠道账单、平台账单或券核销记录
金额信息 支付金额、核销金额、优惠金额、用户实付金额、退款金额 用于拆分订单应收与各支付组成
承担信息 用户承担、平台承担、商家承担、品牌承担、加盟商承担 用于解释金额差异并支撑后续分账
时间信息 支付时间、核销时间、退款时间 用于对账和到账周期分析
状态信息 支付状态、核销状态、退款状态、对账状态 用于跟踪每条支付明细的生命周期

标准支付明细需要支持以下组合支付场景:

场景 支付明细示例 对账重点
团购券 + 在线支付 团购券核销明细、微信或支付宝支付明细 团购平台是否结算券款,在线支付是否到账
团购券 + 在线支付 + 私域现金券 团购券核销明细、在线支付明细、私域现金券抵扣明细 区分平台结算金额、用户实付金额和品牌自承担优惠
储值 + 在线支付 储值扣减明细、在线支付明细 储值账户内部扣减和外部支付渠道结算不能混为一类
平台优惠 + 用户实付 平台补贴明细、商家优惠明细、用户支付明细 识别优惠承担方,避免把优惠误认为渠道少结

标准支付明细的设计原则:

  • 订单金额口径在标准订单中表达,支付构成在标准支付明细中表达。
  • 每条支付明细可以独立对账,也可以参与订单整体对账。
  • 外部有结算账单的支付明细,需要与标准渠道账单核销。
  • 内部权益类支付明细,如私域现金券、储值余额,需要与内部权益或账户流水核对。
  • 优惠、补贴、券抵扣不能简单等同于渠道实收,应区分用户实付、平台承担和商家承担。

4.3 标准渠道账单

标准渠道账单是对账系统的实收基础,描述渠道“实际结算了多少钱”。

核心字段包括:

字段类别 字段示例 说明
渠道标识 渠道类型、渠道名称、商户号、渠道门店号 用于识别账单来源和门店归属
流水标识 渠道交易流水号、渠道订单号、平台订单号、结算单号、券核销单号 用于匹配订单、支付明细和追溯渠道数据
时间信息 交易时间、结算时间、入账时间、账单日期 用于判断订单何时发生、何时结算、何时到账
金额信息 交易金额、退款金额、手续费、佣金、补贴、实收金额、入账金额 用于核销订单应收金额和识别差异
费用信息 平台服务费、配送费、包装费、渠道手续费、营销费用 用于解释账单实收与订单应收差异
归属信息 品牌、门店、加盟商、经营主体 用于门店对账和分账前置归属
状态信息 账单状态、核销状态、差异状态 用于对账流程控制

4.4 标准费用项

费用项用于承接不同渠道不断变化的扣费、佣金、补贴和优惠承担规则。

费用项不建议全部固化为账单主表字段,应作为可扩展明细处理。

核心字段包括:

字段 说明
费用项类型 手续费、平台佣金、配送费、包装费、服务费、营销费、补贴、优惠券承担
费用项方向 增加实收、减少实收、仅用于说明
金额 费用项金额
承担方 品牌、门店、加盟商、平台、渠道、用户
来源渠道 微信、支付宝、美团、饿了么、抖音、电商平台等
关联对象 关联订单、支付明细、渠道账单、结算单或退款单

这样设计可以避免每新增一种平台费用,就修改核心账单模型。

4.5 核销记录

核销记录描述订单、支付明细与渠道实收之间的匹配关系,是对账结果的核心。

核心字段包括:

字段 说明
核销批次 一次对账任务生成的批次
订单标识 关联标准订单
支付明细标识 关联标准支付明细,组合支付场景下用于定位具体支付组成
账单标识 关联标准渠道账单
核销金额 本次用于核销的金额
核销类型 正常核销、部分核销、退款核销、券核销、权益核销、人工核销
匹配依据 订单号、支付明细号、渠道流水号、核销码、商户号、门店、金额、时间等
核销状态 已核销、部分核销、未核销、已撤销
生成方式 自动生成、人工确认、人工调整

核销记录需要支持多对多关系,不能假设订单和账单永远是一对一。组合支付场景下,系统应优先在支付明细维度完成核销,再汇总形成订单维度的对账结果。

4.6 差异记录

差异记录描述对账过程中发现的问题及处理结果。

核心字段包括:

字段 说明
差异类型 未结算、少结、多结、订单缺失、账单缺失、退款异常、手续费异常、门店归属异常
差异对象 订单、支付明细、账单、核销记录或费用项
差异金额 对账差异金额
差异原因 系统识别原因或人工确认原因
处理状态 待处理、处理中、已确认、已关闭、暂缓处理
处理结果 补账、调整、确认无误、转人工、暂缓分账
处理留痕 处理人、处理时间、说明、附件

差异记录应独立于订单和账单主模型,避免用订单状态承载过多异常处理语义。

4.7 可分账结果

可分账结果是对账系统输出给分账系统的稳定数据对象。

核心字段包括:

字段类别 字段示例 说明
订单信息 订单号、业务类型、订单来源平台、订单发生时间 用于分账系统识别业务来源
支付构成 支付方式、支付明细金额、支付来源平台、优惠和券承担方 用于分账系统识别收入构成和优惠承担
归属信息 品牌、门店、加盟商、经营主体 用于分账规则匹配
金额信息 订单应收金额、渠道实收金额、手续费、退款金额、可分账金额 用于分账计算输入
渠道信息 支付渠道、商户号、渠道流水号、券核销单号、结算时间 用于资金、券核销和渠道追溯
对账信息 对账状态、核销批次、差异处理结果、确认时间 用于判断是否允许分账
输出状态 未输出、已输出、输出失败、已接收 用于接口跟踪

分账系统应依赖可分账结果对象,而不是直接读取订单表、支付明细表或渠道账单表。

5. 渠道扩展机制

5.1 渠道接入不直接改变核心模型

新增结算渠道时,不应直接新增一套核心订单、核心账单或核心核销逻辑。

标准接入路径应为:

渠道原始账单
  ↓
渠道解析器
  ↓
字段映射规则
  ↓
标准渠道账单
  ↓
标准费用项
  ↓
统一核销规则
  ↓
标准对账结果

5.2 渠道适配需要配置化承接

每个渠道至少需要配置:

配置项 作用
渠道类型 区分支付渠道、外卖平台、团购平台、电商平台、银行、医保等
账单类型 区分交易账单、结算账单、退款账单、手续费账单、入账流水
字段映射 将渠道字段映射到标准账单字段
金额口径 定义交易金额、退款金额、费用金额、实收金额、入账金额的计算方式
时间口径 定义交易时间、结算时间、入账时间、账单日期的取值规则
匹配规则 定义订单和账单的匹配字段和优先级
差异规则 定义金额容差、跨日结算、分批结算、退款处理等规则

5.3 渠道特殊字段进入扩展字段

渠道特殊字段可以保留,但不应强行进入核心字段。

处理方式:

  • 核心核销必须使用标准字段。
  • 渠道原始字段完整保留在原始数据层。
  • 对报表或追溯有价值但不具备通用性的字段,进入扩展字段。
  • 扩展字段可以按渠道、业务类型、账单类型分组管理。

6. 模型边界

6.1 标准模型必须稳定

以下对象应保持稳定,不随单个渠道变化频繁调整:

  • 标准订单
  • 标准支付明细
  • 标准渠道账单
  • 标准费用项
  • 核销记录
  • 差异记录
  • 可分账结果

6.2 可扩展部分允许变化

以下部分应允许按渠道和业务类型扩展:

  • 原始报文字段
  • 渠道字段映射
  • 费用项类型
  • 金额计算口径
  • 时间取值口径
  • 匹配规则优先级
  • 差异识别规则
  • 报表展示字段

6.3 不应把渠道差异写死在主流程

不建议采用以下设计:

  • 为每个渠道单独开发一套核销流程。
  • 在核心账单表中无限增加渠道专属字段。
  • 把费用项全部固化为主表字段。
  • 让分账系统直接适配各渠道账单格式。
  • 用人工导入表结构替代标准账单模型。

7. 对功能规划的影响

数据模型规划会直接影响功能建设顺序。

第一阶段应优先建设:

  • 标准订单模型
  • 标准支付明细模型
  • 标准渠道账单模型
  • 标准费用项模型
  • 核销记录模型
  • 差异记录模型
  • 可分账结果模型
  • 渠道字段映射能力
  • 基础匹配规则配置能力

暂不应优先建设:

  • 全量字段自定义平台
  • 复杂低代码数据建模平台
  • 面向所有行业的通用主数据平台
  • 跨系统财务总账模型

第一阶段的重点不是做一个无限泛化的平台,而是建立足够稳定的核心模型和必要的渠道扩展机制,让后续新增结算渠道时主要通过映射、规则和费用项扩展完成适配。