先按“字段是否仍在业务流程中产生新数据”分流:仍产生新数据的字段优先保留并重建结构,只用于历史查询的字段可以降级为归档文本。判断依据不是字段数量,而是它在新站上线后是否继续被写入、被筛选、被对外展示。
把旧系统字段逐个标注三种状态:上线后仍会新增、上线后只读、上线后不再使用。仍会新增的字段,即使迁移成本高,也应保留并重新设计类型;只读字段可以合并成一段说明文本;不再使用的字段直接不迁。这个分类决定了后面是改数据结构还是只改展示方式。
假设一个旧产品表里有“内部编号”“旧分类名”“上架备注”三个字段。若只有客服偶尔查旧编号,而分类名已不再参与新站筛选,那么保留编号为只读字段、把分类名并入备注文本,比强行给每个字段建独立表更省事。这里的数字只用于说明比较方法,不代表任何实际项目结果。
这类字段必须保留结构化存储,不能只塞进一段备注。实施动作是:先列出该字段在新站被哪些页面读取,再决定它作为独立字段还是关联表。结果是,如果它只在一个列表页出现,独立字段足够;如果它同时出现在筛选、排序和详情页,就需要考虑索引和默认值,否则上线后会出现筛选为空或排序错乱。
这类字段可以降级处理,但前提是你能接受它不再支持精确筛选。实施动作是:把多个旧字段拼成一段可读文本,附上原始字段名,存入备注或归档表。结果是,前台不再为它单独建筛选入口,后台仍能按订单号或记录ID查到旧值。若业务后来要求按该字段精确统计,就需要回到结构化方案,这一步会影响后续是否返工。
不要直接全量迁移。先选一条包含最多字段的记录,按保留项方案写入新结构,然后检查三件事:新站前台能否正常显示、后台能否编辑保存、旧值是否还能被检索到。任何一项失败,都说明保留项清单需要调整。
个别样本成立但规模化后出现例外,通常来自空值、超长文本和重复值。例如单条记录里“备注”只有二十个字,全量迁移后却出现上千字的历史备注,导致字段截断。此时的选择不是回退全部字段,而是给长文本单独设归档字段,并限制前台展示长度。这个例外说明:保留项决策要按字段的最坏情况,而不是按最漂亮的那条样本。
旧字段可能不只来自一个录入入口。若某个字段由外部接口或批量导入写入,而新站没有对应入口,它就会变成只读字段。实施动作是:在迁移前确认每个保留字段的写入来源,若来源消失,就在字段说明里标记为只读,并停止在新站表单中提供编辑。结果是,前台不会出现“能看不能改”的困惑,后台也不会因为缺少写入逻辑而报错。
若写入来源仍然存在,但新站暂时没有对应表单,可以先把字段保留在数据库中,前台隐藏,等表单上线后再开放。这个中间状态比直接删除字段更安全,因为它保留了后续补录的可能。
最终清单至少包含:字段名、保留方式(结构化/归档文本/不迁)、写入来源、前台是否展示、失败时的回退动作。按这份清单执行迁移后,如果某个字段在测试中无法写入,就按回退动作处理,而不是临时改结构。这样每一步的结果都会影响下一步:测试通过则继续下一批字段,测试失败则先修正保留方式再继续。
对网站建设新手来说,最稳妥的顺序是先定保留方式,再做小批量迁移,最后才处理例外字段。保留项不是越多越好,而是让仍在使用中的字段继续可用,让历史字段可查即可。