7.3 KiB

Matrix: REV-004 新旧标识映射矩阵 v1

1. 说明

本矩阵用于定义迁移后必须保留的新旧标识关系,确保以下能力不丢失:

  • 迁移验收对账
  • 历史明细追溯
  • 审计与问题定位
  • 旧单据到新业务对象的关系恢复

如果没有这张矩阵,即使数据迁过去,后续也很容易出现“查得到结果,但找不回原单据链”的问题。

2. 标识映射原则

  • 每一类核心业务对象都必须保留“旧主键 + 旧业务单号 + 新主键 + 新业务单号”的最小映射能力。
  • 对于账单、流水、申请单、发票号等强业务标识,不允许只保留新值不保留旧值。
  • 若新系统不存在完全等价的新业务单号,至少保留新主键和映射批次号。
  • 新旧标识映射对象必须可按批次、对象类型和映射状态查询。

3. 映射矩阵

旧对象 旧主键 旧业务标识 新对象 新主键 新业务标识 映射承接层 最低保留要求 说明
营业账 FeeId 原账单号 / 历史账单编号 biz_charge chargeId 新账单号或业务编号 mapping-layer legacyIdtargetIdlegacyBizNotargetBizNo 账单是迁移核查主线之一
营业账明细 Id 或明细主键 无统一业务单号时可为空 biz_charge_detail chargeDetailId 可选 mapping-layer legacyIdtargetIdsourceFeeId 明细至少能挂回主账单
账户 AccountId 原账户编号 账户承接对象 accountId 新账户编号 mapping-layer legacyIdtargetIdlegacyBizNotargetBizNo 预存余额迁移核查主线
账户流水 AccLogId 原流水号 / 原暂收流水号 账户流水承接对象或只读映射 accountLogId 或映射主键 新流水号 mapping-layer + history-readonly legacyIdlegacyBizNotargetId/targetBizNo 退款、冲正、转预存必须依赖该链路
收费汇总 CollectId 结账批次号 / 汇总编号 收费汇总承接对象 collectId 新汇总编号 mapping-layer + history-readonly legacyIdtargetId、批次号 汇总核对主线
收费小计 SubtotalId 原小计编号 小计承接对象或只读映射 subtotalId 新小计编号 history-readonly legacyIdtargetId 一般不作为主业务单号,但需追溯
收费明细 DetailId TradeCode / ThirdPartyNum / 第三方流水号 交易对象 / 收费明细承接对象 transactionId 或映射主键 新交易流水号 mapping-layer legacyIdlegacyBizNotargetIdtargetBizNo 收费、退款、冲正核查关键链路
退款账 RefundId 原退款单号 退款场景映射对象 映射主键 新调整单号 / 新退款单号 mapping-layer legacyIdtargetBizNo 若新系统无独立退款主键,至少保留新业务单号
预存退款汇总 Id 原申请单号 退款申请映射对象 映射主键 新调整单号 mapping-layer + history-readonly legacyIdlegacyBizNotargetBizNo 旧申请单是历史审批追溯主线
预存退款详情 Id 原详情单号 退款明细映射对象 映射主键 新明细引用 mapping-layer + history-readonly legacyIdsourceAccountLogIdtargetAccountLogId 重点保留原流水到目标流水关系
调整减免汇总 Id 原调整申请单号 调整场景映射对象 映射主键 新调整单号 mapping-layer + history-readonly legacyIdlegacyBizNotargetBizNo 金额/水量调整的历史入口
调整减免明细 Id 无统一业务单号 调整明细映射对象 映射主键 新账单引用 / 新明细引用 mapping-layer legacyIdsourceFeeIdtargetFeeId 前后账单链必须保留
价差调整汇总 Id 原价差调整申请单号 价差调整映射对象 映射主键 新调整单号 mapping-layer + history-readonly legacyIdlegacyBizNotargetBizNo 若不单独在线化,也必须保留申请号映射
已销调整汇总 Id 原已销调整申请单号 冲正/调整映射对象 映射主键 新调整单号 mapping-layer + history-readonly legacyIdlegacyBizNotargetBizNo 与收费结果链强关联
坏账汇总 Id 原坏账申请单号 坏账申请映射对象 映射主键 新调整单号 / 新申请单号 mapping-layer + history-readonly legacyIdlegacyBizNotargetBizNo 坏账审批与生效查询主线
坏账明细 Id 无统一业务单号 坏账明细映射对象 映射主键 新账单引用 mapping-layer legacyIdsourceFeeId 保证坏账记录能追到原账单
发票主表 Id / InvoiceInfoId InvoiceCode + InvoiceNumber / OrderNo / SerialNo biz_invoice invoiceId 新申请单号 / 新受理号 / 新发票号 mapping-layer legacyIdlegacyBizNotargetIdtargetBizNo 发票查询、补打和对账主线
发票明细 Id 无统一业务单号 发票明细承接对象或只读映射 invoiceDetailId 可选 mapping-layer + history-readonly legacyIdtargetIdinvoiceId 明细至少挂回发票主对象
营业账开票映射 Id 账单号 + 发票号组合 发票关系映射对象 映射主键 新账单号 + 新发票号组合 mapping-layer sourceFeeIdtargetChargeIdlegacyInvoiceNotargetInvoiceNo 发票关系迁移验收的核心对象

4. 映射记录建议字段

建议统一的标识映射记录至少包含:

Field Description
mappingId 映射记录主键
legacySystem 原系统标识
legacyTable 旧表名
legacyId 旧主键
legacyBizNo 旧业务单号 / 流水号 / 发票号
targetDomain 新领域名称
targetId 新主键
targetBizNo 新业务单号 / 受理号 / 发票号
sourceLegacyId 源旧主键(用于前后关系对象)
sourceTargetId 源新主键
mappingStatus planned / migrated / verified / failed
migrationBatchNo 迁移批次号
verifiedAt 校验时间
remark 备注

5. 当前 v1 的直接结论

5.1 必须优先落映射的主线标识

以下标识是迁移最容易断链、也最必须优先保留的:

  • FeeId
  • AccLogId
  • 收费流水号 / 第三方流水号
  • 旧调整申请单号
  • 旧坏账申请单号
  • 发票代码 + 发票号码
  • 发票申请单号 / 订单号 / 受理号

5.2 最容易被忽略但必须保留的关系标识

  • ParentFeeId
  • ContrastFeeId
  • AccountLogId
  • TargetAccountLogId
  • 账单与发票映射关系中的组合标识

这些字段如果不在迁移时显式保留,后续几乎无法恢复“调整前后”“退款前后”“原交易与后续交易”“原账单与新账单”的链路。

5.3 对后续脚本设计的直接约束

迁移脚本设计时,不允许只写“插入新表”逻辑,还必须同步写:

  1. 标识映射入库逻辑
  2. 关系标识补链逻辑
  3. 批次号和映射状态回写逻辑

6. 后续动作

在对象、字段、状态、标识四张矩阵都具备后,下一步建议进入:

  1. 试迁校验清单
  2. 差异分类与复迁规则
  3. 批次化执行与回滚方案