先判断一件事:现有字段是“存储位置不够”还是“语义不够”。如果只是缺一个表单输入框,加字段即可;如果同一字段已经承载了多种含义,比如一个“备注”里混着来源、意向产品和跟进结果,那么继续加字段只会让报表和自动化越来越难写。可行的扩展路径是先把旧数据冻结成可读快照,再新增结构化字段,最后用回填规则逐步迁移,而不是直接改字段含义。
打开你手里那张线索表或订单表,随机抽二十条记录,逐条问:这个字段的值能否用一句话解释清楚。若同一列里同时出现“展会”“老客户介绍”“官网表单”和“朋友推荐”,它其实混了渠道类型与关系类型两个维度。此时新增一个“渠道大类”并不能解决问题,因为旧值无法可靠拆分。
可核对的证据有三类:同一字段出现互斥取值、下游报表需要写大量条件判断、运营人员开始用备注弥补字段缺失。三者出现任意两类,就说明问题不在字段数量,而在字段边界。
直接修改字段含义是最危险的动作。假设原字段 source 过去存的是自由文本,现在要改成枚举值,历史记录会立刻变成脏数据。更稳妥的做法是保留原字段并改名为 source_raw,新增 source_type 与 source_detail 两个字段。旧数据继续可读,新数据从写入时就结构化。
这个动作的结果会直接影响下一步:如果旧字段无法改名,说明上游表单或接口仍在写入,必须先确认写入方,否则新增字段永远收不到数据。此时应暂停扩展,先梳理数据入口清单。
扩展字段后不必立刻回填全部历史数据。先建立一张映射表,列出旧值到新值的对应关系,并标注置信度。例如“展会”可以确定映射到 source_type=线下活动,但“朋友推荐”可能属于老客户转介绍,也可能只是随口一提,置信度低。
可执行的处理方式是:高置信度记录批量回填,低置信度记录保持空值并进入人工复核队列。这样做的结果是报表可以先用新字段出初步分布,同时不假装历史数据已经完整。若低置信度记录占比过高,说明旧字段本身设计缺陷严重,应优先修入口而不是继续补历史。
不是所有缺失字段都值得补。判断标准是:这个字段是否会改变后续动作。会改变跟进优先级、会触发不同自动化流程、会决定报表分组的字段,优先扩展。只是“以后可能想看”的字段,可以先记录在待办清单里。
假设一个场景:官网表单目前只收集姓名和电话,上线后发现销售需要知道咨询的是哪类产品才能分配。此时新增“咨询产品类别”是合理的,因为它直接决定分配规则。相反,新增“用户浏览器版本”虽然也能记录,但不改变任何后续动作,可以延后。
这个取舍的结果是扩展成本可控:每新增一个字段,都要同时确认写入方、校验规则、展示位置和下游消费方。四者缺一,字段就会变成新的僵尸列。
字段加完不等于可用。需要分别验证三条链路:前端或接口能否正确写入、后台列表与详情能否正确展示、报表或自动化能否正确读取。常见反常现象是写入成功但报表为空,原因往往不是字段没建,而是报表查询仍指向旧字段或缓存未更新。
验证时不要只看单条测试数据。至少覆盖空值、边界值和历史记录三种情况。若历史记录在新报表中显示为空,这是预期结果,不代表扩展失败;若新写入记录也为空,才说明写入链路有问题。区分这两种解释,才能决定是继续回填还是回头修入口。