先按“业务是否仍在用、数据是否可重建、迁移后谁来维护”三项打分,把字段分成保留、改写、退出三类;三项都弱的字段直接退出,只有业务仍用且数据不可重建的才保留原样迁入。下面给出可操作的判断条件和取舍代价。
把旧库字段逐个对照现有业务流程,问三个问题:最近一个完整业务周期内是否还有表单、后台或前端在读写它;如果停用,是否有替代字段已经承接了同样的信息;这个字段的值能否从其他字段推导出来。三个问题都指向“没人用”,就是历史残留;只要有一个指向“还在用”,就不能直接删。
假设一个旧产品表里有“规格描述”和“规格参数”两个字段,实际下单流程只读“规格参数”,“规格描述”只在多年前的详情页模板里出现过。这种情况下“规格描述”属于残留,退出迁移的代价只是旧页面文案丢失,而保留它的代价是每次新增产品都要多填一项、多一次校验。反过来,如果客服系统仍按“规格描述”检索,退出就会让售后查不到货,这时应先改写而不是直接退出。
保留适用于三种条件同时成立:字段仍在当前业务中被读取;值无法由其他数据重建;迁移后有人明确负责它的录入和维护。保留的代价是旧结构被带进新系统,后续每次改版都要兼容它。如果只是“以后可能有用”,不构成保留理由。
改写适用于信息本身还要,但旧字段的粒度、类型或命名已经不适合新结构。常见做法是拆分、合并或换类型:把旧的一整段“地址”拆成省市区和详细地址,把用文本存的日期改成日期类型,把多个含义混在一个字段里的内容拆开。改写的代价是需要一次数据清洗规则,并且要接受部分值清洗失败、需要人工回填。
退出适用于业务已停用、值可重建、或保留成本高于信息价值。退出的关键动作不是删,而是先导出归档:把旧字段连同主键导出成一份离线文件,注明导出时间和字段含义,再在新系统中移除。这样做的结果是迁移范围收窄,后续维护量下降;下一步就能把省下的字段处理时间投入到真正阻塞上线的字段上。
不要等全部字段规则定完再动手。先选一张字段最少的表做试迁,把保留、改写、退出三类各放几个字段进去,观察三件事:改写规则的实际失败率有多高;退出字段后新系统里是否出现功能缺口;保留字段是否真的有人在新后台继续录入。
试迁结果会直接改变决策:如果改写失败率明显偏高,说明清洗规则还不成熟,应先把这些字段降级为“暂存保留”,等规则稳定再改写;如果退出后出现功能缺口,说明前面的“业务是否仍在用”判断有误,应把该字段改回保留;如果保留字段在新后台长期无人录入,说明它其实可以退出。这个动作的价值在于用真实数据替代猜测,而不是一次性把全部字段压进新库。
把每个字段的结论写进一张表,至少包含:旧字段名、业务是否在用、是否可重建、处理方式、负责人、验证方式。处理方式只能填保留、改写、退出三者之一,避免“待定”长期挂着。验证方式要具体到可执行,例如“新后台新增一条记录后,前台详情页能正确显示”“导出归档文件能被打开且行数与旧库一致”。
这张表的作用是让迁移范围可核对。当有人问“某个字段为什么没了”,能直接查到它属于退出项以及退出依据;当上线后发现缺数据,也能快速定位是改写失败还是误判为退出,从而决定是补迁还是回填。
第一种是把“表里还有数据”当成保留理由。旧库里有历史记录,不代表业务仍在用,很多字段只是当年录入后从未被读取。判断依据应是当前流程是否读取,而不是数据行数。第二种是把“新系统没有对应位置”当成退出理由。新结构暂时没有承载位置,可能只是设计遗漏,此时应先判断信息是否还需要,需要就改写或新增承载位置,而不是顺势删掉。
两种误判的共同代价是把决策依据从业务需求换成了实现便利。字段保留与否影响的是后续数据完整性和维护成本,先定业务结论,再定技术实现,顺序反了就会在上线后反复补数据。