【发布时间】:2013-10-04 14:27:36
【问题描述】:
共有三个实体:
School, teacher and student
有一些规则:
- 一个学生只能属于一位老师
- 一个学生只能属于一所学校
- 一位教师可以属于一所或多所学校
这意味着我的表格中有这些关系:
- 学生表有一个指向老师的链接和一个指向学校的链接
- 表老师有一个与学校的链接表(多对多关系)
现在这就是问题所在。假设有以下情况
School A school B
| |____ |
| | |
| Teacher John
| |
| |
Student Ale
如您所见,John 老师连接到两所学校,学生 Ale 连接到 John 老师和学校 A。
现在约翰老师离开了学校 A,但学生 Ale 仍然与现在只属于学校 B 的老师 John 保持联系。事实是 Ale 不去学校 B,所以他应该被在这种情况下是约翰老师。
我正在尝试以编程方式完成所有这些操作,但我怀疑架构中有问题。你能发现它有什么问题吗?
【问题讨论】:
-
您使用的是哪个 DBMS?我还要说您的数据库设计存在一些规范化问题。
-
为什么不拥有一个属于学校的
CLASS表,而学生属于CLASS。CLASS也有一个Teacher。这样您就可以将教师重新分配到班级,而无需通过学生。 -
老师没有学校的学生,他可以属于学校吗?
-
是的,他可以属于学校,但目前没有指定老师。