例如一套OA系统,有300多张表,各位觉得有必要在表与表之间建立物理关系吗?
例如:
学生成绩表:
id studentid subjectid score
1 24 2 80
2 24 3 65学科表:
subjectid name
1 语文
2 数学
3 英语
这两个表,学生成绩表的subjectid应该和学科表的subjectid建立关系吗?studentid应该和学生主表建立关系吗?还是说有逻辑上的关系就可以了而不必建立物理上的关系?各位在比较庞大的系统中建表的时候,都会建立表和表之间的关系的吗?
例如:
学生成绩表:
id studentid subjectid score
1 24 2 80
2 24 3 65学科表:
subjectid name
1 语文
2 数学
3 英语
这两个表,学生成绩表的subjectid应该和学科表的subjectid建立关系吗?studentid应该和学生主表建立关系吗?还是说有逻辑上的关系就可以了而不必建立物理上的关系?各位在比较庞大的系统中建表的时候,都会建立表和表之间的关系的吗?
关系的好处是由SQLSERVER系统自动维护(更新,删除),但表间关系比较复杂时,SQLSERVER2000在处理强制关系间的级联更新或级联删除时有很大的问题,容易导致级联路径循环或级联路径不唯一错误,使数据无法修改,非常令人头疼,如果出现了这种情况(与具体业务逻辑有关),就不能强制关系,只能使用触发器来维护关系表间的数据完整性,那样的话好日子就到头了^^.