字段不够用,通常不是数据库“满了”,而是当初把某类信息塞进了备注、标题或一段自由文本里。要扩展,先别急着加表,而是把现有字段里混在一起的信息拆开,判断哪些是稳定属性、哪些是一次性描述,再决定是加列、加关联表,还是新建独立内容类型。下面以你手上任意一个已经上线的页面或一条已发布记录为对象,走一遍可执行的处理流程。
打开一条真实记录,把每个字段的当前值抄出来,逐个问:这个值里是否同时装了两类信息?常见情况是“标题”里混了型号和规格,“备注”里混了联系人、时间和状态,“简介”里混了地址和营业时间。凡是能拆成“谁、什么、何时、在哪、什么状态”的,都属于被挪用,而不是真的缺字段。
区分的证据很直接:如果同一位置的内容格式不统一,有人写全称有人写简称,有人带单位有人不带,说明它承担了它不该承担的检索职责。此时加字段只是把混乱复制一份;先拆字段,再决定是否新增。
拿那条记录做样板,按下面的顺序处理:
假设你手上是一条门店记录,原本只有“名称”和“备注”,备注里写着“周一到周五 9 点到 18 点,周末需预约,负责人张”。拆分后得到:营业时段(可多段)、是否需预约(单选)、负责人(关联到人员记录)。这个假设说明的是判断方法,不是任何具体系统的功能。
确定字段清单后,实际动作分三步,顺序不能颠倒:
这个顺序的结果是:迁移期间新旧数据并存,页面不会因为字段缺失而报错;等核对通过,再关闭旧入口,避免有人继续往备注里写结构化信息。如果跳过第一步直接改必填,线上提交会立刻失败,这是最常见的返工来源。
出现以下任一情况,加列就是短期止痛:同一记录需要保存不定数量的同类值;这些值需要独立被检索或排序;这些值本身还带自己的属性。比如一家机构有多个联系人,每个联系人还有电话和职务,这时把“联系人一、联系人二”做成列,后续查询和展示都会变形。
反过来,如果只是补一个“统一社会信用代码”或“成立日期”这类一记录一值的信息,加列成本最低,也不必动模板结构。判断依据是基数,不是字段数量。
字段加完不等于可用。第一,检查录入端:新字段在表单里是否出现在正确分组,必填提示是否清楚。第二,检查展示端:列表页、详情页、搜索筛选是否都能读到新字段,空值是否有合理显示。第三,检查旧数据:随机抽几条迁移前后的记录对照,确认没有丢内容或串位。
如果发现某字段几乎没人填,先别删。它可能是入口太深、名称难懂,也可能是这项信息本来就不该由录入者提供。先调整标签和位置,观察一段时间再决定去留,比直接删字段更稳妥。字段扩展的终点不是字段越多越好,而是每条记录该被单独处理的信息,都有自己稳定的位置。