先不要按字段清单投票,而要先选一个真实页面作为样本,把每个旧字段还原到它在页面上的实际用途,再判断这个用途在新结构里是否仍然存在。只有用途仍然存在、且新系统没有等价承载方式时,字段才进入保留候选;用途已经消失或能被现有字段组合表达的,应归入舍弃或转换,而不是原样搬过去。这个判断必须先在单个样本上走通,再拿另一类页面验证,否则很容易把只适用于个别页面的规则当成通用方案。
拿读者手里最典型的一个旧页面,不要先看数据库表结构,而是先看这个页面最终呈现了什么。把每个旧字段标注成三类用途之一:展示内容、筛选或分类依据、流程状态。例如一个旧字段叫“资料等级”,如果它在页面上只用于显示一个标签,那它的用途是展示;如果它还参与列表筛选,那它同时承担筛选用途。同一个字段承担多种用途时,要拆开记录,不能用一个保留或舍弃的结论覆盖全部。
这一步的实际动作是:为样本页面画一张用途对照表,左边写旧字段名,中间写它当前影响页面上的哪个位置或哪次筛选,右边先留空。做完之后你会发现,很多字段的“重要性”其实来自它曾经被用在某个位置,而不是它本身不可替代。
把用途对照表整理好后,对每个字段依次问三个问题,三个都成立才进入保留清单:
三个条件里最容易误判的是第二条。命名不同不等于结构不同,取值格式不同也不等于必须保留两个字段。判断依据是:新字段能否在不丢失关键区分的前提下表达旧字段的全部有效取值。能,就做转换;不能,才保留。
一个字段在样本页面上确实需要保留,不代表所有页面都要照此处理。规模化之前,至少再找一个不同类型的页面做验证,重点看两件事:旧字段在这类页面上的用途是否相同,以及新结构是否仍然缺少对应承载方式。如果第二个页面里该字段的用途已经变成可选展示,而新字段又能覆盖,那它就不应进入全局保留清单,只能作为个别页面的例外处理。
假设你手里有两个页面:一个产品详情页,一个列表页。旧字段“适用对象”在详情页用于正文说明,在列表页用于筛选。如果新策划只在详情页保留说明、列表页改用新的分类维度,那么“适用对象”的保留范围就应限定在详情页,而不是因为它在样本里出现过就全局保留。这里的数字只是说明比较方法,不代表任何真实迁移结果。
验证之后,把字段分成三组:全局保留、按页面类型保留、转换或舍弃。只有第一组才进入统一迁移方案,第二组要写清适用条件,第三组要记录转换规则和舍弃理由,便于后续核对。
确定保留清单后,不要只写“保留某字段”,而要写清三件事:新系统里放在哪里、取值如何对应、空值或缺值怎么处理。例如旧字段的取值是自由文本,新系统要求枚举值,就必须先定义映射关系;无法映射的值是留空、归入“其他”,还是转存到备注字段,都要提前决定。
写完之后做一次反向检查:从新页面的每个展示位置和筛选入口出发,看它依赖的数据能否由保留字段和转换后的字段共同提供。如果某个位置找不到数据来源,说明前面的保留判断漏了一项;如果某个保留字段在反向检查里没有任何位置依赖它,就要重新考虑它是否真的需要保留。这个动作的结果会直接决定下一步是补充映射规则,还是缩减保留清单。
最终方案应包含四部分:样本页面的用途对照表、字段的三组分类、每个保留字段的迁移规则、以及反向检查中发现的缺口和对应处理。执行时先处理全局保留字段,再处理按页面类型保留的字段,最后处理转换和舍弃项。每完成一组,就用对应页面验证一次数据是否到位,而不是等全部迁完再统一检查。
如果验证中发现某个字段的用途在新页面上确实无法替代,就把它补回保留清单;如果发现保留字段在多个页面上都没有实际依赖,就把它移入舍弃并记录原因。这样决定保留项的依据始终是页面用途和迁移后的实际需要,而不是旧字段的数量或命名习惯。