Shipping ContextとBilling Contextという 2 つの境界付けられたコンテキストがあるとします。これらの各コンテキストは、顧客について知る必要があります。
CustomerTbl
データ レベルでは、顧客はデータベース内のテーブルによって表されます。このテーブルは、顧客を説明するために必要なすべての列で構成されています。
列CustomerTbl
(簡略化):
Name
PhysicalAddress
PaymentMethod
Shipping Contextは と に関係し、Name
Billingコンテキストはと に関係します。PhysicalAddress
Name
PaymentMethod
Shipping Contextでは、集計をモデル化しましたRecipient
。
Recipient
と のプロパティ/値オブジェクトが追加されましName
たPhysicalAddress
請求コンテキストでは、集計をモデル化しましたPayer
。
Payer
と のプロパティ/値オブジェクトがName
ありますPaymentMethod
Recipient
とPayer
集約の両方は、コンテキスト境界によって完全に分離されています。また、独自のリポジトリもあります。
質問:
同じ「データベース テーブル」を使用して、複数の集計 (それらが別々の境界付けられたコンテキストにある場合) を持つことは許容されますか?
顧客データは、より多くの限定されたコンテキストで必要になる可能性があります。これは、境界付けられたコンテキストごとに多くの集約、リポジトリ、およびファクトリの実装を意味するのではないでしょうか? コードにはある程度の冗長性があります。これは保守性に影響しませんか?
集約間でプロパティを共有することは許容されますか? 例として、顧客の
Name
プロパティがあります。これは冗長な検証コードを意味しますか?