ドメイン駆動設計について一般的な質問があります。コード内に、データベース テーブル スキーマがドメイン オブジェクトと同じでない場所があります。
シナリオあげよう
Database table -
EmployeeDepartment table has columns
1. DepartmentKey - (Integer Type)
2. DepartmentName - (Varchar)
3. FacilityName - (Varchar)
The C# domain class for it has the following
1. Key (Integer)
2. DepartmentName (String)
3. FacilityName (Sting)
4. Employees (IList<Employees>)
この場合、同じエンティティのデータベース設計とドメイン設計の間にギャップがあります。DB では、ブリッジ テーブルを使用して、グループ内の従業員のリストにアクセスします。しかし、C# コードでは、IList を使用して Employees のリストにアクセスしています。
私は知りたいです
これならいいデザイン。ドメイン駆動開発の専門家は、このギャップを回避する方法を知っていますか?
このように設計を進めていくと、問題が予見できます。マッピングのテストを実施することは役に立ちますか?