有三个实体:

School, teacher and student


有一些规则:


一个学生只能属于一位老师
一个学生只能属于一所学校
一位老师可以属于一所或多所学校


这意味着我的表中有这些关系:


餐桌上的学生与老师有联系,一个与学校有联系
表老师有一个与学校的链接表(很多关系)


现在这就是问题所在。假设有以下情况

School A    school B
 | |____       |
 |     |       |
 |    Teacher John
 |     |
 |     |
Student Ale


如您所见,John老师与两所学校相连,而Ale学生与John老师和A学校相连。

现在,约翰老师离开了学校A,但是学生Ale仍然与现在仅属于学校B的约翰老师保持联系。事实是,Ale不会去学校B,因此他应该与约翰约翰断开联系。这个案例。

我正在尝试以编程方式完成所有这些操作,但是我怀疑架构中存在问题。您能发现任何问题吗?

最佳答案

我不是Db专家,但是如果我是你,我会像这样:

Teacher*--------1 teachesIn 1------------*School
                        *                   *
                        |                   |
                        |                   |
                        1                   |
                      Student 1--------------


这样您的学生就不会链接到老师本身,而是链接到老师和学校之间的表格,
因此,如果老师在学校停止教学,您会自动删除老师和学生之间的关系

09-11 19:59