有三个实体:
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--------------
这样您的学生就不会链接到老师本身,而是链接到老师和学校之间的表格,
因此,如果老师在学校停止教学,您会自动删除老师和学生之间的关系