数据库设计中的循环关系

reg*_*tar 3 database-design

我有一个包含4个表的数据库(还有更多,但只有4个导致问题).规则是:模型具有1到多个任务.任务具有一对多集.SuperSet具有一对多集合,而Model具有一对多SuperSet.SuperSet基本上只是一组集合.该设计导致了一个循环外观依赖图,如下所示:

Models <--------------------------- SuperSets
   ^                                    ^
   |                                    |
   |                                    |
Tasks  <---------------------------- Sets
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇http://www.codeproject.com/Articles/38655/Prevent-Circular-References-in-Database-Design,但我无法摆脱任何表格,第二个例子是不同于我的情况.我已经读过,循环关系是不可取的,但我真的没有看到任何解决这个问题的方法.这甚至是一个问题,如果是这样,我该如何解决?请帮我!

WW.*_*WW. 8

如前所述,您的模型中没有循环引用.箭头不会围成一圈.

也许你担心Sets可以Models通过两个不同的父母到达祖父母.这是一个合理的问题,可以通过确保主键Models是其他三个表的主键的一部分来解决.

使用外键,这可以确保每行只Sets属于一个模型.


Szy*_*mon 6

你的设计不是循环的.

还有Models,在与2代表的顶层TasksSupersets.然后Sets是最低级别.没有级别返回到更高级别的表.

这很好,不会造成任何问题.