一个简单的数据库设计问题

07-09-07 zgxzowen
    

一个关于数据库设计的问题,假如现在有一种对应关系,就是老师和学生,怎么设计数据库更为合理。

1、老师一张表,学生一张表,1对多,主外键关联。

2、老师和学生一张表用来存放人,另一个用来存放关联关系。

我的问题是就查询时候的复杂程度哪个更容易,或者说那样设计更为合理。

假设以后我还要扩展,加如年部主任这个职位,他可以管理多个教师,我还是增加一张表好,还是在方案2的基础上增加职位更好?

这只是一个特别简单的举例,不知道能不能说明什么问题?

还有就是查询的时候,我是通过一次连接数据库取回很多记录然后在程序里在拆分成需要的组合,还是用SQL语句查询出我需要结果?那样更好,就数据量大的问题时考虑。

    

javashare
2007-09-09 19:28

首先,老师和学生应该是多对多关系吧

多对多关系可以把联系名做关系模式名,关系模式的关键字做为联系中的实体字的并集

比如一个学生有多个老师教,

一个老师带多门课

老师:老师编号,名字……

学生:学生编号,名字……

教学:学生编号,老师编号,成绩…… 主键为:学生编号和老师编号的并集

一已之见,仅供参考

hiworld
2007-09-09 19:52

我同意楼上的意见.

学生和老师应该是多对多关系,用三张表来存放.

一张表用来存放学生,一张表用来存放教师,一张表用来存放关系.

netsky0812
2007-09-09 21:31

同意楼上的看法