学生管理中的循环关系

时间:2013-07-08 02:01:59

标签: database database-design relational-database

我正在研究学生,助教,老师和班级关系。 每个班级都有一名教授和一名助教,但TA也可以是学生。所以,我提出了这样的想法(下图),但我不确定这样的循环关系是否正确?

提前谢谢。

Database 1

3 个答案:

答案 0 :(得分:0)

对于同一个班级来说,永远不能同时是学生和TA,它永远不应该完全建立一个循环关系。您可以通过在允许在数据库中设置值之前检查该情况来防止这种情况发生。

即使它发生了,我也不相信会有问题。循环关系的问题是一个值最终永远不会被定义(也就是StudentID被引用作为每个表的外键,但从未定义过)。在数据库布局中不是这种情况。

答案 1 :(得分:0)

您的布局不是圆形的;你有:

Class-list -> Student

Class-list -> Class -> Student

如果您加入Student -> Class-list

,您的布局将变为循环播放

我没有看到你有问题。

答案 2 :(得分:0)

我看起来不错,但您可能想要考虑所有助教是否都是学生。

表之间的界限是关系。因此,在这种情况下,您并没有真正创建循环引用。

在一条路径中,您说一个class_list有一个学生,一个类有多个class_lists。在另一条道路上,你说一个班级有一个TA,他必须是学生(可能设置了“isTA”标志)

这里没有任何东西阻止学生上课和TA,但这也不是世界的终点。很可能会出现这种情况。