结论先说:如果同一内容要在多个栏目出现,优先维护一个“主记录”,其他栏目只做引用或聚合;只有当不同栏目对内容的字段、权限或展示节奏有本质差异时,才拆成两套记录。判断标准不是栏目数量,而是这份内容是否被不同人按不同规则编辑。
在商业网站建设里,单一来源不等于全站只能有一条数据。它更接近一个约定:同一份事实、同一段正文、同一个价格或同一组参数,只在一个地方被编辑,其他位置通过引用、关联或自动聚合获得它。这样做的直接结果是,修改一次即可影响所有展示位,避免某个栏目还停留在旧版本。
这个约定要成立,需要满足两个条件:第一,各栏目消费的是同一组字段;第二,内容的更新责任能落到一个明确的角色上。如果这两点不成立,硬做单一来源反而会让编辑流程变慢,甚至出现“为了统一而统一”的额外维护成本。
做法一:主记录加引用。适合内容主体相同、只是展示场景不同的情况。比如同一款产品既出现在“新品”栏目,也出现在“行业方案”栏目,正文、参数和图片完全一致,只是排序和入口不同。此时应把产品作为主记录,栏目只保存关联关系或筛选标签。
做法二:拆成独立记录并同步。适合各栏目对内容有不同要求的情况。比如同一项服务在“标准版”栏目要突出交付周期,在“定制版”栏目要突出配置选项,字段结构、审核人和上线时间都不同。此时强行共用一条记录,会迫使编辑在同一个字段里塞入互相冲突的信息。
两种做法的代价不同:主记录加引用省去重复编辑,但要求引用关系稳定,栏目删除或路径调整时要有检查机制;拆成独立记录灵活,但必须指定同步责任人和同步触发点,否则两处内容会逐渐分叉。
假设某商业网站建设时,把“公司简介”同时放进“关于我们”和“投资者关系”两个栏目,并共用一条主记录。后来投资者关系栏目需要按合规要求补充一段风险提示,而关于我们栏目不需要。如果仍然坚持单一来源,编辑只能把风险提示加到主记录里,导致关于我们页面出现与普通访客无关的内容。
这个反例说明:当不同栏目对同一内容的“必填字段”或“展示边界”出现实质差异时,单一来源的结论就失效了。此时更合理的动作是拆成两条记录,把共同部分做成可复用的片段,而不是继续共用整条记录。
先做一次字段对照,而不是先改数据库。把同一内容在各栏目出现的字段列出来,逐项标记“相同”“不同但可共存”“互相冲突”。只要出现“互相冲突”,就进入拆分评估。
完成对照后,下一步不是立刻开发,而是选一个栏目做小范围验证:把主记录和引用关系跑一遍,观察栏目编辑是否能在不接触主记录的情况下完成日常更新。如果编辑仍然需要频繁修改主记录,说明字段边界没有划清,应先调整字段定义,再决定是否继续推进单一来源。