假设我有两个有界上下文,即Shipping Context和Billing Context。这些上下文中的每一个都需要了解客户。
在数据级别,客户由CustomerTbl
数据库中的表表示。此表包含描述客户的所有必要列。
中的列CustomerTbl
(简化):
Name
PhysicalAddress
PaymentMethod
Shipping Context与Name
and相关PhysicalAddress
,而Billing Context与Name
and相关PaymentMethod
。
在运输上下文中,我对聚合进行了建模Recipient
:
Recipient
Name
现在具有和的属性/值对象PhysicalAddress
在计费上下文中,我对聚合进行了建模Payer
:
Payer
Name
具有和的属性/值对象PaymentMethod
Recipient
和聚合都Payer
被上下文边界完全分开。他们也有自己的存储库。
问题:
使用同一个“数据库表”是否可以接受多个聚合(假设它们位于单独的有界上下文中)?
在更多有界的上下文中可能需要客户数据。这不意味着每个有界上下文都有许多聚合、存储库和工厂实现吗?代码会有一定程度的冗余。这不会影响可维护性吗?
跨聚合共享属性是否可以接受?一个例子是客户
Name
财产。这也意味着多余的验证码?