我正在研究学生、助教、老师和班级的关系。每个班级都与一位教授和一位助教相关联,但助教也可以是学生。所以,我想出了这样的想法(下图),但我不确定创建这样的循环关系是否正确?
先感谢您。
我正在研究学生、助教、老师和班级的关系。每个班级都与一位教授和一位助教相关联,但助教也可以是学生。所以,我想出了这样的想法(下图),但我不确定创建这样的循环关系是否正确?
先感谢您。
如果一个人永远不能同时是同一个班级的学生和助教,那么它永远不应该完全构建循环关系。您可以通过在允许在数据库中设置值之前检查这种情况来防止这种情况发生。
即使发生,我也不相信会有问题。循环关系的问题在于,一个值最终永远不会被定义(也就是StudentID
从每个表中被引用为外键,但从未定义过)。在您的数据库布局中并非如此。
您的布局不是圆形的;你有:
Class-list -> Student
和
Class-list -> Class -> Student
如果您包含,您的布局只会变成圆形Student -> Class-list
我没看出你有问题。
对我来说这看起来不错,但你可能想考虑一下是否所有的助教都会成为学生。
表之间的线是关系。因此,在这种情况下,您并没有真正创建循环引用。
在一条路径中,您是说一个 class_list 有一个学生,一个 class 有多个 class_list。在另一条路径中,您是说一个班级有一个 TA,他必须是学生(可能设置了“isTA”标志)
这里没有什么可以阻止学生上课和助教,但这也不会是世界末日。这种情况很可能会出现。