先给结论:不要一发现字段不够就直接给主表加列。正确顺序是先判断这个字段属于“补充描述”还是“参与业务判断”,前者可以走扩展存储,后者才值得动核心结构。判断错了,后面每加一个字段都会带来一次数据迁移和代码回归。
假设你在通化做了一套本地服务类网站,上线时留言表只有姓名、电话、留言内容、提交时间。上线三个月后业务变了:市场部要区分留言来自哪个渠道,客服要标记谁跟进了、跟到哪一步,老板还想看哪些渠道带来的有效咨询更多。
这时候你会发现,缺的不是一个字段,而是三类信息:来源标识、跟进状态、跟进记录。如果直接在主表加三列,短期能跑,但跟进记录一旦变成多条,主表就会被撑成一行塞多个值,后面查询和统计都别扭。
判断标准很简单:这个字段会不会被用来筛选、排序、分组、做权限判断。会,就属于核心字段;只是备注、补充说明、非结构化描述,就属于扩展字段。
把这三类混在一起处理,是上线后字段失控最常见的原因。
假设你决定把渠道来源和跟进状态放进主表,把跟进记录拆成独立表。可执行的动作顺序是:
这个动作的结果是:表单提交不中断,历史数据有明确归属,下一步才能安全地做渠道统计。如果跳过回填直接切读取,历史留言在后台会显示为空,客服会误判为无效数据。
不是所有字段缺失都值得扩展。出现下面两种情况时,应该先停下来。
反过来,当字段已经进入日常筛选、报表或权限判断,继续用临时方式承载,就会让每次查询都变复杂,这时候扩展才是划算的。
字段加完、代码改完后,至少验证三件事:新提交的数据能否正确写入并回显;历史数据在筛选和统计中是否出现异常空值;导出功能是否包含新字段且列顺序稳定。假设导出模板写死了列数,新增字段后导出文件可能错位,这类问题不会在页面上暴露,却会直接影响后续对账。
验证通过后,再更新后台的操作说明和字段含义文档,否则新来的客服仍然按旧习惯填写,扩展出来的字段很快又会变成脏数据。