我正在尝试实现一个多级库。只有单个父节点:
Parent1
- Child1
- Child2
Parent2
- Child1
- Child2
我首先使用链接表来实现它
LibraryItem -< LibraryItemLink (FkParentId)
-< LibraryItemLink (FkChildId)
这很好,而且功能强大,因为它允许多父节点和多子节点。但是,我在尝试删除父库项目时遇到了困难。理想情况下,应该在两个约束上放置“级联删除”以覆盖父节点或子节点删除,但 SQL Server 不喜欢这样,因为它认为可能会发生循环删除。所以我想知道我是否让自己的生活变得棘手,而是应该使用自引用关联到 LibraryItem。
LibraryItem -< LibraryItem(Children)
这会更容易实现吗,尤其是从 MVC3/EF5 世界中的 CRUD 角度来看?
最后一个选项是 2 个级别的 2 个表,这更容易,但更有限。
非常感谢的想法。