先不要问“哪些字段最重要”,而是先确认两件事:旧系统里每个字段是否还有可读的数据源,以及新页面在缺少该字段时是否还能正常成立。只有当“有数据”和“页面需要”同时成立,才进入保留优先级;否则应转入归档、人工补录或暂时留空,而不是硬塞进新结构。
拿旧库表、导出文件或旧页面源码中的字段清单,逐项标注两个维度:数据是否可读、新站是否有对应位置。这样会得到四组,处理方式完全不同。
这一步的关键动作是导出字段清单并标注,而不是直接开始写迁移脚本。标注结果会决定后面是写映射规则、安排人工补录,还是修改新页面模板。如果跳过标注,往往会在迁入后才发现某个必填字段大面积为空,返工成本更高。
同一个字段在不同页面类型里的必要性不一样。判断时不要只看字段名,要看它在页面上承担什么功能。可以按下面的顺序检查:
如果某个字段缺失会导致页面无法生成、链接失效或筛选结果错误,它属于结构必留项,应优先安排补录或调整模板。如果只是展示层信息,可以留空或隐藏,不必为了迁入而阻塞整体进度。这里不能推出的结论是:字段在旧站出现频率高,就一定在新站必须保留;频率高只说明旧站依赖它,不代表新结构仍然需要。
当旧库只能读部分表、导出文件缺列,或没有权限访问某些历史数据时,不要等待“数据齐全再迁”。可以先做三件事:
这个动作的结果是得到一份可执行的缺口表,而不是一个模糊的“数据不全”结论。缺口表会直接影响下一步:如果缺口集中在少数必填字段,可以安排人工补录;如果缺口覆盖大量页面且无法补录,就需要调整新页面模板,让这些字段变为可选。需要说明的是,导出清单里某个字段为空,不能单独证明旧系统没有该数据,也可能是权限限制、导出范围不完整或字段本身从未启用;因此空值比例只能作为排查线索,不能当作最终判断。
假设旧商品表只能导出名称、价格和分类,材质字段因权限问题读不到,而新商品页模板把材质设为必填。此时有两种成立条件不同的选择。
第一种,如果材质只用于详情页展示,不影响筛选和下单,可以把新模板的材质改为可选,先迁入可读字段,材质留空并标记待补。这样页面能先成立,后续再逐条补录。
第二种,如果材质参与筛选条件,缺失会导致用户筛选结果错误,就不能简单留空。此时应暂时隐藏该筛选项,或只对已补录材质的商品开放筛选,而不是让空值进入筛选逻辑。两种选择的分界不是“材质重不重要”,而是它是否参与页面功能。假设补录一百条商品需要人工核对,那么先迁入可读字段、再分批补录,通常比等待全部材质补齐再上线更容易控制进度;这个比较只说明假设条件下的取舍方法,不代表任何实际项目的工期或效果。
定下保留项和留空项后,不要直接全量迁移。先选少量记录,按新页面实际渲染一遍,检查三件事:必填字段是否真的都有值、留空字段是否导致页面报错、筛选和链接是否仍然可用。抽样结果如果发现某个被标为“可留空”的字段其实会导致页面异常,就把它移回必留项;如果某个必留字段在抽样中大量为空,就重新评估是补录还是改模板。这个动作的作用是把字段清单上的判断变成可观察的结果,并让下一步的全量迁移有明确依据。抽样通过也不等于全量不会出问题,它只能说明当前规则在样本范围内成立,不能推出所有旧记录都已覆盖。