我在做一个学生注册网站,其中5张表如下:
区域表:id(主键) 区域名称...
学校表:id(主键) 学校名称 区域id....
院系表:id(主键) 院系名称 学校id....
班级表;id(主键) 班级名称 院系id....
学校旁商家表:id(主键) 商家名称 学校id....
现在要设计学生注册信息表:
第一种设计:
id(主键) 姓名 性别 班级id...第二种设计:
id(主键) 姓名 性别 班级id 院系id 学校id 区域id...因为有些信息的查询需要通过院系、学校或区域等信息去查,比如查询学生所在学校旁边的商家信息...
这样的话,我觉得第二种设计比较好,但是又觉得比较冗余,不知道那一种设计比较合理
一个好的数据库的设计应遵循怎样的原则?遇到上面的情况应要怎么设计??
恳请对这方面有研究的高手解答一下,不胜感激!!

解决方案 »

  1.   

    id(主键) 姓名 性别 班级id由你的几个表来看,你所用到的注册信息表中只要包含班级id即可,因为你可以通过班级id
    查找到院系,再通过院系id找到学校,然后就可以通过学校找到区域id。
      

  2.   

    我就是觉得因为有一些要查询的信息是通过学校或区域id来查
    这样的话,查起来比较麻烦,因为当前知道的只有一个学生id
    所以考虑了一下第二种设计