构建DDD时,数据库中的表重复

时间:2015-01-08 12:10:00

标签: architecture datatable domain-driven-design

我与我的团队的一位建筑师进行了讨论,我想了解我们是否正确地做了所有事情。

我们有几个子域名。例如,其中一个(子域A)包含"播放器"实体。另一个(子域B)使用该实体。

目前,数据库中有两个表 - A.Player和B.Player。 B.Player包含子域B所需的列(不是所有的A.Player,而是它的一些片段)。

架构师告诉我这种架构对分布式系统非常有用。

我认为这很奇怪,会导致重复和不一致。子域名A中应该有应用服务,为子域B提供接口。

问题:谁是对的?在哪里可以阅读有关此信息?

2 个答案:

答案 0 :(得分:1)

根据来自另一个的数据,一个有界上下文(BC)没有任何问题。我假设这是你所指的。

请记住,BC-B中使用的BC-A中的数据将是BC-B中的值对象。它只应在BC-A中更改。在这种情况下,BC-A将是记录系统。 BC-B中的数据应该从不直接由BC-B更改,但仅响应来自BC-A的消息。

因此,消息传递是一些额外努力将发挥作用的地方。

答案 1 :(得分:1)

如何使用" B.Player"以及如何处理这种情况有多种选择。成为" A.Player"的 视图 。此类视图可以是 虚拟 (信息按需检索,意味着查询有一些延迟)或 具体化 (信息在本地重复/存储,因此查询没有延迟,而是更多的数据管理工作)。如果管理得当,数据重复不一定会导致不一致。一种可能的方法是在Eben的答案中推荐的主/从模式。

相关问题