Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何确保引用完整性—许多不严格分层的实体?_Sql_Database_Referential Integrity - Fatal编程技术网

Sql 如何确保引用完整性—许多不严格分层的实体?

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

假设我有三个实体(或表格):
学校
学生
教室
。我如何确保
学生
属于属于同一
学校
学生所属的
教室
?考虑到
学生
可能不属于任何教室


我在许多其他方面面临着这个问题。例如,当我添加实体
Teacher
时。我如何在数据库级别保证
教师
在同一
学校的
教室
上授课
教师
所属的学校?等等……

老师能为不同的学校教书吗?一个学生可以在多个学校上课吗?不,他们不能,尽管他们可以改变学校。但这样一来,老师就不能再上一所学校任教了,学生也就不能再上一所学校的教室了。你的问题比听起来更难。不要试图在数据库中强制执行这些关系,因为数据库不存在。一名教师可能一年属于一所学校,下一年属于另一所学校,但您只允许该教师拥有一所学校。