结论是:先按“字段是否参与当前业务闭环”分类,而不是按数据新旧或数量多少决定。只要一个字段仍被前台展示、后台审核、对账或对外接口依赖,就应保留并迁移;仅用于历史备注、已停用流程或无人维护的统计字段,可以归档而不进入新库。这个判断只有在你能列出字段的消费方时才成立;如果没人说得清谁在用,保留项就会变成猜测。
旧系统迁移时最常见的误判,是把“数据库里存在”当成“业务上还需要”。决定保留项之前,先做一张字段消费清单,而不是直接比对表结构。
把每个字段标成“前台可见”“后台可用”“接口依赖”“仅存档”四类。前三类进入迁移候选,第四类先进入归档表或导出文件。这个动作的结果会直接决定下一步:候选字段需要定义新结构、默认值和校验规则;归档字段只需要保证可查、可导出,不再占用新系统的编辑界面。
假设你抽查了十个旧订单,发现“客户备注”字段几乎为空,于是决定不迁移。这个判断在样本上成立,但规模化后可能失效:某些大客户、批发订单或售后单会集中使用该字段,而抽查样本恰好没有覆盖这些类型。类似地,某个“来源渠道”字段在早期内容里很少填写,但广告投放或合作导流开始后,它可能变成对账依据。
因此,不能把“样本里出现次数少”直接等同于“可以删除”。更稳妥的做法是按业务类型分层抽样,而不是随机抽十条。至少覆盖:新老客户、不同订单类型、不同内容栏目、不同渠道来源。若某一层里该字段出现稳定使用,就应保留;若所有层都只出现空值或测试值,才进入归档。
反例也很明确:如果旧系统字段本身没有稳定语义,例如同一个“备注”字段既写客服记录又写财务说明,那么即使它被频繁使用,也不能原样迁入。此时要做的不是保留原字段,而是拆成“客服备注”和“财务备注”两个新字段,并制定填写规则。否则迁移只是把混乱搬到新系统。
为了让决定可执行,可以把字段分成四档,并写明每一档的动作和验收方式。
这个分类的结果会影响下一步的迁移脚本设计:保留和拆分字段需要写转换规则与回滚方案;归档字段只需要导出校验;丢弃字段则要从迁移映射表中移除,防止误迁。
在正式迁移前,选一个业务闭环完整的子集做验证,例如最近一个月的订单加对应客户记录。验证目标不是看数据量,而是看三件事:
如果验证中发现某个保留字段在新系统里没有对应展示位置,就要回到上一步重新判断它是“保留”还是“归档”。如果拆分规则产生大量待人工处理记录,说明拆分粒度过细,应合并部分含义或增加默认值。
决定保留项之后,不要立刻全量迁移。先把字段清单冻结,标明每个字段的处理档位、负责人和验收口径,然后按“归档导出—保留字段迁移—拆分字段分流—丢弃字段确认”的顺序执行。执行结果要反馈到清单:如果某个归档字段在迁移后一周内被频繁查询,就说明它应升级为保留字段;如果某个保留字段始终为空且无人使用,就应降级为归档。这样调整的依据来自实际使用,而不是迁移前的猜测。