例如一套OA系统,有300多张表,各位觉得有必要在表与表之间建立物理关系吗?
例如:
学生成绩表:
id   studentid   subjectid     score
1       24         2         80
2       24         3         65学科表:
subjectid       name
 1              语文
 2              数学
 3              英语
这两个表,学生成绩表的subjectid应该和学科表的subjectid建立关系吗?studentid应该和学生主表建立关系吗?还是说有逻辑上的关系就可以了而不必建立物理上的关系?各位在比较庞大的系统中建表的时候,都会建立表和表之间的关系的吗?

解决方案 »

  1.   

    关系是用来进行数据完整性约束的,通常非常必要,尤其是强制关系.
    关系的好处是由SQLSERVER系统自动维护(更新,删除),但表间关系比较复杂时,SQLSERVER2000在处理强制关系间的级联更新或级联删除时有很大的问题,容易导致级联路径循环或级联路径不唯一错误,使数据无法修改,非常令人头疼,如果出现了这种情况(与具体业务逻辑有关),就不能强制关系,只能使用触发器来维护关系表间的数据完整性,那样的话好日子就到头了^^.
      

  2.   

    A表中有Aid作为主键的话,B表中可以有Aid字段,作为外键