たとえば、親と子の 2 つの集計があります。親は多くの子 (子) を持つことができます。子は 1 つの親にのみ属することができます。
親の子エンティティを取得したときにリストがその順序になるように、子エンティティの並べ替え順序を追跡する必要があります。
明らかなデータベース スキーマは次のとおりです。
ただし、モデルの不変条件は、この順序が明確に定義されている必要があります。したがって、Child にメソッドがある場合、Child.SetOrdinal(int) と言うと、この不変条件は保護されません (2 つの Child を序数 3 に設定することを止めるものは何もありません)。すべてを 1 つの大きな集合体にまとめたくありません。
私が見る代替手段は、次のようなデータベースです。
リレーションシップと順序を格納するためにリンク テーブルを導入した場合、これは不変条件を保護できる親集計内になります。ただし、これによりデータベースが複雑になります。
別の方法はありますか、それとも最初のより単純なバージョンはそれほど悪くありませんか?