鼎味肉市DESIGN ATELIER
← 资料目录docs/architecture/08-domain-model/model-03-catalog.md阅读原文

DM-03|商品与发布领域模型

状态:working-draft;候选模型,不是已锁定的结构或状态契约。
上游:BC-03;输入:旧聚合材料(历史材料保留在 docs_bak/)。
编写:主会话;业务决策与长期维护人:待指定。日期:2026-09-18。

1. 对象分类与候选聚合

对象 分类 维护什么 要保护的业务含义
Category 候选根 类目身份及层级关系 避免循环和非法引用,精确规则待定
Product / SKU 候选独立根 商品身份;销售对象身份 稳定身份与版本内容分开
SKUVersion / SpecVersion 不可变版本对象 销售、加工、包装规格 被接受的版本不覆盖修改
Publication 候选根 目标范围、发布计划、生效引用 发布不等于可售
RecommendedRecipe 候选根 推荐内容与 SKU 映射版本 不同于顾客个人菜谱
HomepageComposition 候选根 首页内容编排版本 与 Publication 的生效职责不可重复
CatalogSnapshot 不可变发布产物 生效内容及来源版本 不是新的主数据写入口

“候选根”表示需要独立身份、生命周期及一致性责任的提案,不代表每行已经确定为一个事务。历史、子实体、值对象及集合的最终边界还需基于规模和不变量核对。

2. 关系与引用

Product 与 SKU 引用关联;规格和推荐内容引用明确版本;Publication 引用待发布版本;首页编排通过发布动作生效。文件引用平台 FileAsset,不复制其存储生命周期。

值对象及共享引用的统一含义见 MODELING-RULES。上下文之间引用 ID、版本或不可变快照,不共享可变实体。

3. 生命周期

内容版本:草拟 → 审查 → 批准或退回;发布:计划 → 生效 → 结束/被替代。修改已批准内容产生新版本;回滚发布新指针,不把历史版本改回草稿。

这些是语义级路径,尚未列全每种政策下的迁移;不能直接生成生产枚举。业务对象状态、协调进度和技术回执分别保存与展示。

4. 业务动作与事件

经营者创建、提交、批准和发布;顾客只查有效发布;交易及履约引用冻结规格。事件候选:“规格版本已批准”“发布已生效”“发布已结束”。

事件名称为中文业务语义候选,不新建机器事件名。进入后续契约设计时逐项确定输入、前置条件、结果、错误和受众。

5. 强一致性及并发边界

同一发布目标的并发生效需目标级版本守卫;素材就绪必须有可验证版本/状态,不能仅先查一次即永久保证。发布快照与生效指针需本地一致,传播失效另行恢复。

共同约束见 CONSISTENCY:单根版本不能替代跨对象约束;如需同 BC 多根本地事务,必须明确保护范围与理由,不能默认为整个 BC 一把锁。

6. 反例、未知与下一步

并发上线覆盖、媒体撤销、旧规格被订单引用后修改、发布成功但缓存旧。发布审批、目标重叠规则、品类范围和推荐实验归属待定。

上述反例是设计验证目标,尚未执行产品测试。先关闭影响边界的不确定性,再完善动作级迁移表及精确模型。身份、权限与业务状态的联动仍遵守 07 的统一授权接缝,不在本页复制一套权限规则。

7. 交易严谨性补充(2026-09-29)

商业快照绑定明确规格/发布版本;SKU 下架、切法/计量修改不改变已购订单的原规格。发布回退是新的生效决定或指针版本,不把已结束发布执行改回初态。新购需重新校验可售依赖,旧订单仍可追溯;商品编辑权限不提供订单改价/改量权。

共用不变量、反例与恢复主讲见TRANSACTION-INTEGRITY。本节是设计约束,不证明本域实现或全部状态契约完成。