结论先说:只有当同一篇内容在不同栏目中承担完全相同的阅读任务时,才适合维护单一来源;一旦各栏目需要不同的标题、摘要或排序逻辑,强行共用一条数据反而会让编辑互相覆盖。判断依据不是栏目数量,而是这篇内容被放入各栏目后,读者是否期待看到同样的字段和同样的更新节奏。
单一来源的核心不是把整条记录塞进一个栏目,而是把可共用字段和展示字段拆开。可共用字段通常包括正文主体、作者、首次发布时间、核心图片;必须分开的字段包括栏目内标题、栏目内摘要、置顶权重、排序时间。若把这些展示字段也写回同一条记录,A 栏目改摘要就会覆盖 B 栏目的摘要,表面上是单一来源,实际是互相污染。
一个可执行的判断方法是:列出该内容出现的每个栏目,逐项标注“这个字段变了,其他栏目是否也应该跟着变”。如果答案为是,归入共用字段;如果答案为否,归入栏目级展示字段。这个动作的结果会直接决定下一步用关联表还是复制记录,而不是先选技术方案再补规则。
反例出现在内容需要按栏目独立排期时。假设同一篇介绍性文章同时进入“行业观察”和“服务说明”两个栏目,前者按发布时间排序,后者需要长期固定在栏目顶部。如果只维护一条记录,置顶权重就只能有一个值,要么行业观察里被错误置顶,要么服务说明里失去固定位置。此时正确的做法不是继续强化单一来源,而是保留一份正文主记录,再为需要独立排期的栏目建立轻量引用记录,只存栏目内标题、摘要和排序字段。
另一个常见反例是权限边界不同。当两个栏目由不同编辑负责,且各自只应修改自己栏目内的展示信息时,把全部字段放在同一条记录里会迫使一方获得本不该有的修改权。这种情况下,单一来源应收缩到正文层,展示层按栏目拆开。
维护单一来源时,栏目引用必须指向稳定标识符,而不是标题或路径。标题会改,路径可能因栏目调整而变化,用它们做关联会在一次改名后产生断链。实际动作是:正文主记录生成一个不随展示变化的标识,各栏目引用只保存这个标识加自己的展示字段。这样改标题时只需更新主记录和需要同步的栏目,不会影响其他栏目的独立摘要。
需要同步更新时,先改主记录,再检查哪些栏目引用了它。若某栏目使用独立摘要,就不要自动覆盖;若某栏目使用主记录摘要,则跟随更新。这个顺序能避免先改栏目、后改主记录造成的短暂不一致。
假设一篇内容同时进入“新闻”“常见问题”“服务介绍”三个栏目。新闻需要按日期排序,常见问题需要按问题分类,服务介绍需要固定展示。此时可共用正文和主图,新闻使用发布时间,常见问题使用分类字段,服务介绍使用固定排序值。若三者都只引用一条记录且只允许一个排序字段,就必然有两个栏目无法按预期展示。这个例子说明,单一来源的边界应停在正文层,而不是强行扩展到所有展示层。
下一步动作是先做一张字段归属清单,标出哪些字段共用、哪些字段按栏目独立,再决定引用结构。完成这张清单后,如果发现超过两个栏目需要独立排序或独立摘要,就应接受展示层复制,而不是继续压缩成一条记录。