各ユーザーが、たとえば委任によって他のユーザーから評判を得ることができるソーシャル ネットワークを想像してみましょう。したがって、A が B に委任するとき、最初に A と B の評判が 1 であるとすると、A は 0、B は 2 になります。その後、B は C に委任できます。
また、委任にはスコープがあり、スコープはネストできます。したがって、A は、すべてのトピック、プログラミングのみ、または C# のみに関する評判を委任できます。また、プログラミングは B に委任できますが、C# は C に委任できます。つまり、最終的な評判は、特定の範囲によって異なります。
そのため、レピュテーションを計算するためにトラバースする必要がある一種の有向グラフ構造 (おそらくツリーですが、サイクルについてはまだ明確ではありません) が得られます。
私はそれを DDD の原則でモデル化しようとしていますが、ここでの集計が何であるかはわかりません。
集約は一貫性の単位であるため、委譲ツリー/グラフがその候補であると思います。ただし、これは集合体が非常に大きくなることを意味します。スコープの問題は、集計の境界が明確でなくなるため、さらに複雑になります。C# での委任は、プログラミングでの委任を含む集約の一部ですか?
ユーザーはどうですか?集約として、他のユーザーへの/からの参照 (委任) を保存する必要があります。繰り返しますが、特定のユーザーが属する集計はどれですか?
別の問題は、評判を効率的に計算する方法です。この場合、グラフデータベースはリレーショナルよりも適切だと思いますが、それが唯一の良い答えですか?