先不要按“全部保留”或“全部砍掉”来决策。把待迁页面逐字段导出成一张对照表,对每个字段问三个问题:新系统是否有同义容器、旧数据里非空比例是否够高、保留后由谁维护。三个都过关才进入保留清单;只过前两个的,先转成备注或附件;一个都不过的,直接归档不迁。这个顺序能让你在字段冲突时先保住可用信息,而不是先保住表结构。
旧系统迁不动,通常不是字段本身有问题,而是字段背后的业务含义在新系统里没有对应容器。以产品资料页为例,旧表可能有“型号别名”“历史报价备注”“供应商内部编码”“上架批次”这类列。它们在新系统里未必都有独立字段,但可以落到正文、标签、附件或后台备注中。
可执行动作是:导出旧表全部列名,逐列标注去向,只允许四种结果——独立字段、合并进已有字段、转成附件或备注、归档不迁。标注完成后统计每种去向的数量。如果“独立字段”超过新系统可维护的范围,就要回头合并,而不是继续加字段。
这个动作的结果会直接影响下一步:去向标注完成前不要开始建新表,否则后面每加一个字段都要回头改导入脚本和页面模板,返工量会成倍增加。
旧系统里很多字段之所以显得重要,只是因为它们一直存在,并不代表有人用。判断保留价值时,看两个可量化信号:该字段在旧数据中的非空比例,以及最近一次被人工修改的时间分布。
假设某批产品资料共 200 条,其中“内部编码”有 180 条非空,但最近两年没有任何修改记录;“客户特殊要求”只有 30 条非空,却每月都有人补充。按上面的规则,前者合并进备注即可,后者反而值得单独保留并设置必填提示。这里的关键不是数量多少,而是“有内容”和“还在被维护”是两件事。
字段迁移最容易出错的地方,是用一两个样本页面推断全部数据。单个页面看起来字段齐全、格式统一,但放大到全部旧数据后,往往会出现空值、重复值、同一含义多种写法、以及只在少数记录里出现的特殊列。
处理方式是先做一次小规模试迁:从旧数据中抽取覆盖不同栏目、不同时间段的样本,按正式规则导入测试环境,记录每一类报错。重点看三类例外——同一字段出现多种格式、某字段只在个别栏目存在、以及旧系统允许为空但新系统要求必填。
试迁结果决定正式迁移的字段范围:如果某字段在样本中反复触发格式错误,且没有稳定的清洗规则,就应先转为附件保留原始值,而不是强行塞进新字段。这一步不能省,因为正式迁移后再回退,代价远高于试迁阶段调整规则。
字段能不能留,不只看数据,还要看迁入后谁来填、什么时候填、填错怎么办。一个字段如果在旧系统里靠某个人手工维护,迁入新系统后这个人不参与,那它很快会变成空列或垃圾数据。
对每个拟保留字段,写清三件事:由哪个岗位在哪个环节填写、是否允许留空、留空时页面如何展示。比如“材质说明”如果允许留空,前台就要有默认文案或隐藏逻辑;如果要求必填,后台提交时就要有校验提示。没有这三项约定的字段,宁可先不迁。
实际动作是把保留清单连同维护责任一起交给负责内容录入的人确认。对方确认不了的字段,说明当前没有稳定维护者,应降级为备注或归档。这一步的结果会直接改变保留清单的长度,也会影响新系统后台表单的设计。
字段无法完整迁入时,正确的取舍顺序是:先保证旧数据里的信息不丢失,再考虑新系统结构是否整齐。具体可以按下面的顺序执行。
如果执行到第三步发现例外过多,就回到第二步重新合并字段,而不是在导入脚本里堆特殊判断。脚本里的例外越多,后续越难维护,也越容易在下次改版时再次丢失数据。
最终判断标准可以归结为一句话:一个字段值得保留,是因为它在迁入后仍有人维护、仍能被页面用到、且不会因为留空而破坏展示;三者缺一,就应转为备注、附件或归档,而不是勉强塞进新结构。