知识卡片
共享表是设计错误的反模式信号
内容
当分属不同上下文的两个服务操作同一张”共享表”时,往往意味设计出错,有三种典型情形:遗漏了一个上下文(订单与商品都查价格表,实为漏了价格上下文);职责分配错误,操作共享表的职责本应给已有服务(舆情与危机都取邮件模板,应交邮件服务);共享表对应两上下文的不同概念(仓储与订单都访问产品表,但关心的产品信息不同,应按知识语境各建表)。根因是没遵循领域建模、直接对数据库设计。发散:共享表是一面镜子,照出被漏掉的上下文或放错位置的职责。
参考来源
- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.1.2(源文件:_epub-src/OEBPS/031.xhtml)
- 结论依据:原文列出共享表对应的三种设计错误及其共同根因——未遵循领域建模而直接设计数据库。
- 原始内容:数据库共享架构可能传递"反模式"的信号……遗漏了一个限界上下文……职责分配出现了问题……共享表对应两个限界上下文的不同概念。