多対多の関係のモデル化に関するいくつかの質問を見つけましたが、現在の問題を解決するのに役立つものは何もありません。
シナリオ
User
s とsを持つドメインをモデル化していますChallenge
。チャレンジには多くのユーザーがおり、ユーザーは多くのチャレンジに属しています。ユーザーがいない場合でも、課題は存在します。
十分に単純です。ユーザーはチャレンジでランク付けされる可能性があるため、私の質問はもう少し複雑になります。この情報は、ユーザーとそのランクのセットとしてチャレンジに保存できます。これもそれほど難しくありません。
質問
チャレンジでユーザーの個々のランクを照会したい場合 (チャレンジですべてのユーザーのランクを取得せずに)、どのスキームを使用すればよいですか? この段階では、データ アクセスでどのように呼び出しを行うかは気にしません。必要なランク データ ポイントが 1 つだけの場合に、何百ものランク データ ポイントを返したくありません。
また、ランク情報を保存する場所も知りたいです。ユーザーと課題の両方に依存しているように感じます。これが私が考えたものです:
明白なこと: をインスタンス化するときは
Challenge
、すべてのランク情報を取得するだけです。遅くなりますが動作します。複合
UserChallenge
エンティティを作成しますが、それはドメインに反しているように感じます (「ユーザー チャレンジ」については触れません)。第三の選択肢?
私は 2 番に行きたいと思っていますが、これが本当に DDD アプローチであるかどうかを判断する自信はありません。
アップデート
、または何かUserChallenge
のように、よりドメインに適したものを呼び出すことができると思いますか?Rank
UserRank