先给结论:决定保留哪些旧字段,不要按“字段是否重要”投票,而要先确认每个字段在新系统里有没有承接方。有承接方且历史值可解释的,优先迁移;没有承接方但业务仍在用的,先在新系统补出承载结构再迁;既无承接方又无在途用途的,归档而不迁。判断顺序应当是“承接结构 → 历史值质量 → 迁移代价”,而不是“字段名看起来重不重要”。
旧系统字段无法完整迁入时,常见的第一反应是“能迁就迁,迁不了再删”。但真正执行后经常出现另一种结果:字段确实都保留下来了,编辑却不知道该填哪个,前台也不知道该显示哪个。原因不是迁移技术失败,而是旧字段在新系统里没有对应的位置和规则。
这里有两种解释,需要分开看。
两种解释对应的动作完全相反:前者应当归档,后者应当先改新系统再迁。把它们混在一起,就会出现“该删的迁了、该留的删了”。
要判断一个字段属于哪种情况,可以查三类证据,而不是凭印象决定。
注意,填充率归零不能单独证明字段该删。它也可能是采集入口被关闭、旧表单已下线、或数据被转移到别处记录。要结合业务动作一起看,才能避免误判。
假设旧系统里有一个“来源备注”字段,新系统没有对应位置。可以这样比较两种做法。
选择条件在于:如果这个字段背后的业务动作现在仍在发生,选B;如果动作已经停止,只是数据库里还有残留,选A或直接归档都行。这里的数字只用于说明比较方法,比如统计最近一批记录中该字段的填充比例,而不是断言某个具体比例就一定代表有效。
一个可执行的动作是:为每个旧字段建立一行映射记录,包含旧字段名、新系统承接位置、历史值样例、当前业务是否仍在使用、迁移后由谁维护。做完这张表,保留项和归档项会自然分开。
这个动作的结果会直接影响下一步:映射表里“无承接位置但仍在用”的字段,会变成新系统的改造清单;“有承接位置且值可解释”的字段,进入迁移脚本;“无承接位置且已停用”的字段,进入归档说明。这样就不会把结构问题和数据问题混为一谈。
如果映射表做完后仍然无法判断,可以先把该字段标记为“暂缓”,不迁也不删,等业务方确认动作是否还在发生,再决定最终归属。暂缓不是拖延,而是避免在证据不足时做出不可逆的删除。
保留过多字段的代价是:新系统模型变复杂,编辑填写负担增加,前台需要处理更多空值。删除过多字段的代价是:历史信息丢失,后续想恢复时只能从备份里找,且不一定找得回关联关系。
因此更稳妥的顺序是:先补承接结构,再迁仍在用的字段;对已停用字段做归档而不是直接删除;对无法判断的字段暂缓处理。这样既不会因为怕丢数据而全盘保留,也不会因为怕麻烦而一刀切删除。