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。本节是设计约束,不证明本域实现或全部状态契约完成。