共有三个实体:
School, teacher and student
有一些规则:
- 一个学生只能属于一位老师
- 一名学生只能属于一所学校
- 一名教师可以属于一所或多所学校
这意味着我的表中有这些关系:
- 学生表有一个到老师的链接和一个到学校的链接
- 表老师有一个与学校的链接表(多对多关系)
现在这就是问题所在。假设有以下情况
School A school B
| |____ |
| | |
| Teacher John
| |
| |
Student Ale
如您所见,约翰老师连接到两所学校,学生 Ale 连接到约翰老师和 A 学校。
现在老师 John 离开了学校 A,但学生 Ale 仍然与老师 John 保持联系,现在只属于学校 B。事实上,Ale 不会去学校 B,所以他应该被约翰老师就是这个例子。
我正在尝试以编程方式完成所有这些操作,但我怀疑架构中存在问题。你能发现它有什么问题吗?
最佳答案
我不是 Db 专家,但如果我是你,我会这样处理:
Teacher*--------1 teachesIn 1------------*School
* *
| |
| |
1 |
Student 1--------------
所以你的学生没有链接到老师本身,而是链接到老师和学校之间的表, 因此,如果老师停止在学校教学,您就会自动删除老师和学生之间的关系
关于mysql - 学生、老师和学校的关系不明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183764/