Sql 如何确保引用完整性—许多不严格分层的实体?
假设我有三个实体(或表格):Sql 如何确保引用完整性—许多不严格分层的实体?,sql,database,referential-integrity,Sql,Database,Referential Integrity,假设我有三个实体(或表格):学校,学生和教室。我如何确保学生属于属于同一学校学生所属的教室?考虑到学生可能不属于任何教室 我在许多其他方面面临着这个问题。例如,当我添加实体Teacher时。我如何在数据库级别保证教师在同一学校的教室上授课该教师所属的学校?等等……老师能为不同的学校教书吗?一个学生可以在多个学校上课吗?不,他们不能,尽管他们可以改变学校。但这样一来,老师就不能再上一所学校任教了,学生也就不能再上一所学校的教室了。你的问题比听起来更难。不要试图在数据库中强制执行这些关系,因为数据库
学校
,学生
和教室
。我如何确保学生
属于属于同一学校
学生所属的教室
?考虑到学生
可能不属于任何教室
我在许多其他方面面临着这个问题。例如,当我添加实体
Teacher
时。我如何在数据库级别保证教师
在同一学校的教室
上授课
该教师
所属的学校?等等……老师能为不同的学校教书吗?一个学生可以在多个学校上课吗?不,他们不能,尽管他们可以改变学校。但这样一来,老师就不能再上一所学校任教了,学生也就不能再上一所学校的教室了。你的问题比听起来更难。不要试图在数据库中强制执行这些关系,因为数据库不存在。一名教师可能一年属于一所学校,下一年属于另一所学校,但您只允许该教师拥有一所学校。