发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

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

    
2007-09-07 11:06
赞助商链接

一个关于数据库设计的问题,假如现在有一种对应关系,就是老师和学生,怎么设计数据库更为合理。
1、老师一张表,学生一张表,1对多,主外键关联。
2、老师和学生一张表用来存放人,另一个用来存放关联关系。
我的问题是就查询时候的复杂程度哪个更容易,或者说那样设计更为合理。
假设以后我还要扩展,加如年部主任这个职位,他可以管理多个教师,我还是增加一张表好,还是在方案2的基础上增加职位更好?
这只是一个特别简单的举例,不知道能不能说明什么问题?
还有就是查询的时候,我是通过一次连接数据库取回很多记录然后在程序里在拆分成需要的组合,还是用SQL语句查询出我需要结果?那样更好,就数据量大的问题时考虑。

2007-09-09 19:28

首先,老师和学生应该是多对多关系吧
多对多关系可以把联系名做关系模式名,关系模式的关键字做为联系中的实体字的并集
比如一个学生有多个老师教,
一个老师带多门课
老师:老师编号,名字……
学生:学生编号,名字……
教学:学生编号,老师编号,成绩…… 主键为:学生编号和老师编号的并集

一已之见,仅供参考

2007-09-09 19:52

我同意楼上的意见.
学生和老师应该是多对多关系,用三张表来存放.
一张表用来存放学生,一张表用来存放教师,一张表用来存放关系.

2007-09-09 21:31

同意楼上的看法

数据库     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com