マルチレベルのライブラリを実装しようとしています。親ノードは 1 つだけです。
Parent1
- Child1
- Child2
Parent2
- Child1
- Child2
リンクテーブルを使用してこれを実装することから始めました
LibraryItem -< LibraryItemLink (FkParentId)
-< LibraryItemLink (FkChildId)
複数の親ノードと複数の子ノードを使用できるため、これは問題なく強力です。ただし、親ライブラリ アイテムを削除しようとすると問題が発生します。親ノードまたは子ノードの削除をカバーするために、両方の制約に「カスケード削除」を設定するのが理想的ですが、SQL Server は循環的な削除が発生する可能性があると考えているため、これを好みません。それで、私は自分自身の人生をトリッキーにしているのかどうか疑問に思いました。代わりに、LibraryItem への自己参照関連付けを使用する必要があります。
LibraryItem -< LibraryItem(Children)
これは、特に MVC3/EF5 の世界での CRUD の観点から、実装が容易でしょうか?
最後のオプションは、2 レベルの 2 テーブルで、はるかに簡単ですが、制限があります。
考えは大歓迎です。