按照樓主的表結構的話
(CS-23,数据库,4,CS-20)
(CS-23,数据库,4,CS-21)
--是不存在数据冗余的。
請樓主把你具體想實現的功能以數據的方式發上來看看

解决方案 »

  1.   

    --这是一种多对多的关系.也就是一门课程对于多门先修课程,而一门先修课程也对应多门课程.所以应该单独做一个表来表示这样的关系.
    课程基本信息表course(课程号,课程名,学分)
    课程,先修课程联系表b_course(课程号,先修课程号)--这样冗余就会减小了!
      

  2.   

    to talantlee :我的意思是想尽量避免数据冗余。不过听你这么一说,
    按我原先给出的表结构,确实不存在冗余。楼上所说的修改表结构定义确是一种好方法。不过在查询时会不会带来
    额外的开销?比如我要查询某个学生是否有资格选修数据库,则我必须
    知道他是否修读了数据结构和操作系统,并且成绩合格(假如还有一张
    成绩表)
      

  3.   

    course(课程号,课程名)
    Select(先修课程号,先修课程名)
    student(學號,课程ID,学分,先修课程ID)
      

  4.   

    回复人: csbird() ( ) 信誉:100  2005-04-24 19:07:00  得分: 0  
     
     
       to talantlee :我的意思是想尽量避免数据冗余。不过听你这么一说,
    按我原先给出的表结构,确实不存在冗余。楼上所说的修改表结构定义确是一种好方法。不过在查询时会不会带来
    额外的开销?比如我要查询某个学生是否有资格选修数据库,则我必须
    知道他是否修读了数据结构和操作系统,并且成绩合格(假如还有一张
    成绩表)
    ----------------------------------------其实就你现在一个表达话,你查询某个学生是否有资格选修数据库,你也是要在两个表中查询的啊。
    一个就是course,还有就是成绩表,而按照mschen(Visual【陈】)的方法,同样是查询两个表的,而且数据的冗余减小,这个方法不错的。