すべてのDDDエンティティにはIDが必要です。ですから、私の質問は、ProductDetailが製品に関する知識を持っていれば、製品とProductDetailのようなマスター詳細関係にありますか? ProductDetailクラスのProductIDプロパティが必要ですか?データベースでは、これは2つのオブジェクトをリンクする唯一の方法ですが、DDDではこのベストプラクティスなので、もちろん正常です。私はLinq2SqlをORMマッパーとして使用していますので、これは指定されていますが、これは正しい方法ではないと思います。これに知恵の言葉を持っている人は誰ですか?DDD、マスター詳細関係の関連エンティティ
答えて
外部キーは、リレーショナルデータモデルの成果物です。オブジェクトモデルはコンテナの概念で動作します。したがって、OrderにはOrder Lineのコレクションが含まれています。注文行に商品などが含まれています
エンドユーザはどのようにProductDetailを取得しますか?答えが製品からその製品にナビゲートされる可能性が高い場合、ProductDetailは単にProductのプロパティ、またはProductのプロパティであるProductDetailsのコレクションの一部です。
オブジェクト指向のコードでは、ProductDetailオブジェクトは親製品への参照を持つ必要はありません。
データベースには、Id列を持つ製品のマスターテーブルがある可能性があります。次に、それが関連している製品のIDへの外部キーを持つProductDetailの子テーブルがあります。
非常に重要ドメイン駆動設計の原則は、OOコードにのみ適用されることを覚えておいてください。リレーショナル・データベースとリレーショナル・データ・モデリングは全く別のものです。
ORMを使用して2つのモデルを結ぶ方法は? ORMは、ProductDetailクラスのForiegnキーを定義させます。 ProductIdを定義せずにドメインモデルを処理できるORMはありますか。 Raw SQLは唯一の方法ですか? –
ORMを使用するのではなく、自分のデータアクセス層を常にロールしています。 Hibernateのような最も良いORMツールは、親テーブルへの外部キー参照を持つ子テーブルをデータベースに作成できるようにする必要があります。 ORMを正しく構成すると、リポジトリは同じDDD集約の一部として親と子の両方を取り出すことができます。 – dthrasher
- 1. firedacマスター - 詳細関係のdoesntの仕事のデータベーステーブルの
- 2. マスター - 詳細関係で "DataTable.Select(?)"を使用する方法
- 3. なぜエンティティのフレームワークエンティティのマスターの詳細エンティティの編集
- 4. マスター/詳細動作
- 5. マスター - 詳細:アンドロイドに
- 6. RadGridマスター/詳細Telerik
- 7. Androidのマスター詳細レイアウト
- 8. jaGridマスターの詳細1回
- 9. ノックアウトのマスター詳細JS
- 10. dddの多対多関係
- 11. MVVM WPFマスター詳細コンボボックス
- 12. マスター詳細ビューASP.NET MVC
- 13. Hibernateマスター詳細カスケード挿入
- 14. DataGridViewをエンティティに「マスター詳細」でバインドする
- 15. Oracle Apex - マスター詳細フォームの詳細フォームの編集
- 16. ハスケルマップ関数のタイプ詳細
- 17. 詳細がライトボックスにあるASP.NETマスター/詳細ページの例?
- 18. マスター詳細データウィンドウの詳細を新しいウィンドウに表示
- 19. エンティティ関係図
- 20. Grailsエンティティの関係
- 21. ドクトリンの関係 - エンティティ
- 22. Doctrine2エンティティの関係
- 23. Railsの複数の関連付けの詳細検索
- 24. 関連コンテンツの動画コンテンツの詳細と統計 - Youtube API V3
- 25. SQL Mergeの使用方法詳細のテーブル関連
- 26. wpfデータバインディングの詳細と1対1の関連付け(エンティティフレームワーク)
- 27. マスター詳細グリッドビュー内の複数のDataKeyNames
- 28. フラグメントのみのマスター/詳細フロー
- 29. マスター - 煎茶のExtJSで詳細シャア4.0
- 30. Spring MVCマスター詳細の問題
ドメイン駆動型設計とは何が関係していますか? – jlembke
外部キーProductDetailsクラスのProductIdはDDDとは関係ありません。リレーショナルデータモデルの成果物です。それが私の指摘でした。 – Prankster