先给结论:字段迁不完整时,不要按“旧系统有什么”决定保留,而按“新站上线后谁在什么场景下必须用到这个字段”决定。能明确说出使用人和使用动作的字段保留并迁移;只有历史存档价值、没有前台或后台使用动作的字段,改成只读归档或导出文件;连归档都说不清用途的,直接退出,不占用新库结构。判断依据是使用场景,不是字段数量。
保留、改写、退出不是难度递减的三档,而是三种不同代价。保留意味着新系统要长期维护这个字段的录入、校验、展示和权限;改写意味着要写转换规则,并且要接受转换后信息损失;退出意味着旧数据从此只能靠导出文件或旧系统备份查阅。三者都会产生成本,区别只是成本落在谁身上、什么时候出现。
很多迁不动的情况,其实不是技术迁不动,而是没人能说清这个字段迁过去之后给谁用。这种情况下先按退出处理,比先塞进新库再慢慢清理更省事。
把旧系统字段逐个过一遍,对每个字段问两个问题:上线后谁会用,用来做什么。两个问题都能答上具体角色和具体动作的,进入保留候选;只能答出“以后可能有人要查”的,进入改写或归档候选;两个问题都答不出的,退出。
假设一个旧站的联系表单里存了“来访渠道备注”和“客户所属片区”两个字段。如果新站的咨询跟进流程里,客服每天要按片区分配线索,那“客户所属片区”就有明确使用人和使用动作,值得保留并做规范化改写,比如统一成固定选项而不是自由文本。如果“来访渠道备注”只是当年某次活动的临时记录,活动早已结束,新流程里没人查看,那就退出,最多把原始记录导出留档。这个例子是假设的,用于说明筛选方法,不是真实项目结果。
筛选时要注意一个常见误判:把“字段有数据”当成“字段有用”。数据多只说明当年录过,不说明现在有人用。判断依据应该是使用动作,不是数据量。
决定改写之前,先确认旧字段到新字段的映射规则能写清楚。能写清楚的标准是:给定任意一个旧值,都能确定它在新结构里对应什么,或者明确标记为无法映射。做不到这一点的,不要勉强改写,宁可先原样保留成只读文本,等使用场景明确后再处理。
典型可改写的场景是枚举值收敛,比如旧系统里“区域”是自由文本,新系统改成固定选项,这时需要一份对照表,把历史值逐条归到新选项,归不进去的统一进“其他”。典型不适合改写的场景是旧字段把多个含义混在一起,比如一个备注框里同时写了联系人、时间和诉求,这种情况下拆字段的规则很难稳定,拆错之后反而制造错误数据。此时更稳妥的做法是保留原文,不强行结构化。
改写动作做完之后,下一步不是直接上线,而是抽样核对映射结果。核对发现映射错误集中在某一类旧值时,说明规则需要调整,而不是继续往下迁。
退出的前提不是“新站不需要”,而是“没有任何角色需要在新站里查阅它”。如果财务、客服或管理层在新站上线后仍可能查历史记录,那这个字段不能直接消失,应该转成导出文件或只读归档,并明确谁保管、放在哪里、怎么查。
具体动作是:在决定退出前,向实际会用到旧数据的人确认一次查阅频率和查阅方式。如果对方说“基本不查,真要用就翻旧系统”,那可以退出,同时保留旧系统备份;如果对方说“每个月要对一次”,那就要把相关字段做成可导出的归档,而不是让它随旧系统一起下线。这个确认动作的结果会直接决定退出是否安全,也决定后续要不要为归档单独安排存储和访问方式。
字段去留最容易出问题的地方不是判断本身,而是判断没有留痕,过几周又有人提出“这个字段怎么没了”。建议对每个非保留字段记录三件事:处理方式、判断理由、原始数据存放位置。理由要写到具体角色和场景,比如“客服分配线索不需要该字段”,而不是“没用”。
这份记录同时是后续调整的依据。上线后如果出现新的使用需求,可以对照记录判断是当初漏判,还是需求本身发生了变化。前者需要补迁,后者需要重新评估是否值得为它增加维护成本。把这两者分开,才不会因为一个临时需求就推翻整套字段方案。
字段迁不完整时,真正要决定的不是能不能迁,而是迁过去之后谁用、怎么用、用多久。按使用场景筛,按映射规则改写,按查阅需求决定退出,每一步都留下可核对的依据,字段方案才站得住。