先给结论:不要按“新系统能不能装下”决定保留项,而要按“字段缺失会不会改变业务动作”决定。把每个旧字段映射到三个问题——谁在什么流程里读它、缺失后是否必须人工补录、补录错误是否会产生对外可见后果。三者都成立才优先保留;只影响统计口径或历史存档的字段,可以降级为备注、附件或离线归档,而不必阻塞迁移。
试迁几十条记录时,旧系统的文本字段、多选值和附件路径往往都能塞进新结构,看起来迁移方案成立。放大到全量后却出现例外:某些记录长度超出新字段上限,某些旧选项在新系统里没有对应项,某些附件指向的存储路径已经失效。这时团队容易走向两个极端:要么把旧表原样搬过去,要么直接砍掉“看起来没用”的字段。
更稳妥的判断是承认边界:样本成立不等于全量成立。旧系统允许的自由输入,在新系统里可能被约束为枚举或关联表;旧系统里一个字段承担多种语义,新系统却要求拆成多个字段。迁移决策的对象不是字段本身,而是字段承载的业务动作。
如果某个旧字段会触发后续动作,例如“审核状态”决定记录能否对外展示、“归属人”决定谁收到提醒、“生效日期”决定内容何时可见,那么它属于触发器字段。缺失它不会只是少一条信息,而会让流程停在错误的位置。
对这类字段,保留项应包括字段本身、取值含义和默认规则。具体动作是:为每个触发器字段写一条映射说明,注明旧值到新值的对应关系,以及无法映射时的处理方式。这个动作的结果会直接影响下一步——如果映射表里出现大量“无法对应”,说明需要先补业务规则,而不是继续迁移数据。
另一类字段只用于描述或存档,例如旧系统里的“备注”“来源说明”“历史编号”。它们不触发流程,也不参与对外展示,缺失后最多影响人工回溯。对这类字段,保留项可以不是独立字段,而是合并进备注、作为附件保留,或导出为离线归档。
判断边界在于:如果删掉该字段后,业务人员仍能通过其他字段或外部记录完成同样判断,就不必为新系统强行增加字段。反之,如果每次回溯都要重新翻旧库,说明它仍有查询价值,应至少保留可检索的摘要。
要区分“必须保留”和“可以降级”,可以做一个假设的短例子。假设旧系统有“客户等级”字段,新系统没有对应项。若缺失后,客服每次接待都要先问一遍等级,或者订单折扣无法自动计算,那么补录成本高且会重复发生,应保留为结构化字段。若缺失后只是季度报表少一个维度,且该维度可从历史订单金额重新推导,那么可以降级为归档字段。
可操作的证据收集方式:
这些证据的作用不是追求完整迁移,而是让保留项有明确理由。若某个字段既无流程读取,又无补录需求,还无对外后果,就不应因为“旧系统里有”而保留。
建议按以下顺序决定保留项:先保留触发器字段和对外可见字段,再保留高频查询字段,最后处理仅存档字段。每完成一层,就用一小批真实结构的数据验证映射结果。如果验证中发现某类记录大面积无法映射,应暂停该层迁移,回到业务规则确认,而不是用默认值掩盖差异。
同时要写明不能直接照搬的边界:旧系统的字段长度、选项集合和附件路径不能作为新系统的设计依据;新系统的约束条件也不能反向证明旧字段无价值。迁移方案应包含回退方式,例如保留旧库只读访问一段时间,确保在发现遗漏时可以核对,而不是假设一次迁移就能覆盖全部例外。