结论先给:当旧字段无法完整迁入时,优先保留“业务上仍在产生新数据、且下游有人依赖”的字段,其余字段先冻结归档而不是删除。判断依据不是字段数量,而是它是否参与当前业务流程、是否有可替代来源、以及迁移失败的代价由谁承担。若某个字段虽然老旧却仍被财务或客服用作对账凭据,就不该按“使用频率低”直接丢弃。
把旧系统字段逐个归入三类,取舍会清晰很多。第一类是活跃业务字段,每天都在写入、被查询或被导出;第二类是历史凭据字段,不再新增但偶尔需要回溯核对;第三类是冗余展示字段,可以由其他字段计算或拼接得到。保留项应覆盖前两类,第三类可以只保留计算结果,不迁移原始值。
一个实际动作是:在迁移前给每个字段标注“最近一次写入时间”和“下游调用方”。如果某字段近一年没有新写入,却有调用方,说明它是凭据类;如果既无写入也无调用方,才进入候选丢弃清单。这个动作的结果会直接决定下一步是做全量迁移、只读归档,还是彻底排除。
常见的取舍是“全部保留”与“只保留活跃字段”。全部保留的成立条件是:旧字段总量可控、归档存储成本可接受、且存在明确的合规或对账需求。它的代价是新系统表结构臃肿,后续每次改版都要考虑这些僵尸字段,维护成本会持续累积。只保留活跃字段的成立条件是:历史数据已有独立备份、业务方确认不再依赖旧字段、且能承受回溯时去备份中查找的不便。
假设某旧系统有 40 个字段,其中 12 个仍在写入,8 个被客服用于查历史订单,20 个是页面展示用的拼接值。按上面的标准,12 个必须迁入,8 个进只读归档,20 个不迁移原始值。这个例子只说明比较方法,不代表任何真实项目的字段分布。
如果某个字段虽然不再写入,却是法律或合同要求的留存凭据,那么“只保留活跃字段”的结论立刻失效——此时它必须完整迁入并保证可读,哪怕它一年只被查一次。另一个反例是:字段本身冗余,但下游某个报表直接读取它的原始值而非计算结果,一旦丢弃,报表会静默出错。判断这类风险的办法是查清调用方,而不是看字段名像不像废弃字段。
迁移完成后,用一组对照检查验证决定:随机抽取若干条旧记录,在新系统中按原业务路径走一遍,看关键字段是否可读、可查、可导出。若发现某字段缺失导致流程中断,说明它本应归入活跃或凭据类,需要补迁。若某字段迁入后从未被任何路径访问,可以标记为待清理,但不要立即删除,先观察一个业务周期。
下一步动作很具体:把字段清单、角色分类、调用方记录和验证结果整理成一份迁移决策表,交给业务方确认后再执行清理。这样做的结果是,保留项的选择有据可查,后续出现争议时能快速定位是分类错误还是需求变化,而不是反复重迁。