关于数据库表关系以及ER图的一些疑问

mukes 2017-07-06 10:55:04
我打算做一个学生选课和成绩管理系统,目前正在数据库设计阶段。
这个是我的数据库er图:

这个是数据库关系图:

数据库er图的部分实体的属性我没有添加上去,而且还没进行排版,请多多谅解。
我的疑问有几点:
1.成绩与选课的关系应该如何?
这里我的选课为学生、教室、课程、教室四个实体的联系,而成绩为选课的属性。
因为这样的话,我可以在程序里弄了选课功能,然后学生选课就把数据插入到数据库的选课表中,但是此时成绩为空。
而当老师提交成绩时,根据学生编号和课程号只把成绩插入到选课表对应的元组上。这样的想法是合理的吗?
还是有其他正确或者更好的方法吗?

2.如果当在程序中进行查询成绩时,要显示绩点等属性,这个又是怎么解决的呢?
这样的话是保持原来成绩作为选课的一个属性还是单独把成绩作为一个联系或者实体,然后包含其他绩点等其他表没有的属性?
...全文
4342 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mukes 2019-03-25
  • 打赏
  • 举报
回复
引用 5 楼 La solitude、c 的回复:
最近我也在设计一个火车售票系统的er图 ,但我的数据库方面的内容学的不是很好,楼主能说一下er图中的各种框与数据库中表所对应的关系吗?万分感谢
ER图的实体可以作为数据库的一个表,实体的属性作为数据库表的属性。 如果实体是多对多关系,比如学生和课程:一个学生可以选多门课,一门课也可以被多个学生选,那么学生和课程之间的关系也要作为一个数据库表(选课表)。 如果是一对多关系,比如班级和学生:一个班级有多个学生,那么在数据库中可以把班级表的主键作为学生表的外键,把两者关联起来。 如果是一对一关系,这个呢在小系统中比较少用,我通俗解释一下,比如员工表和员工信息详情表,员工表的员工详情属性可以作为员工详情表的外键(这个属性也是员工详情表的主键),这样已经存在传递依赖了,完全可以合成一个表,但是在大系统中为了提高查询速度啊,或者对业务进行事务隔离操作等等,就可能存在这样的关系。小系统的话,你基本不用考虑这个。
Shimmer 2019-03-23
  • 打赏
  • 举报
回复
最近我也在设计一个火车售票系统的er图 ,但我的数据库方面的内容学的不是很好,楼主能说一下er图中的各种框与数据库中表所对应的关系吗?万分感谢
mukes 2017-07-06
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
仅供参考: 1、我觉得合理。 2、额,绩点是什么?(上学那会儿好像挺多人说,也没注意过……),是和课程有关还是和成绩有关?对应关系是什么?如果是一对一的关系,和谁有关就放到谁的表上。
成绩 绩点 60-64 1.5-1.9 65-69 2.0-2.4 70-74 2.5-2.9 75-79 3.0-3.4 80-84 3.5-3.9 85-89 3.0-3.4 90-94 3.5-3.9 95-100 4.0-4.5 ----------------------- 这是成绩和绩点的对应关系,我是根据我学校的教务系统类推的,这个数据库基本都是一个人在瞎搞,扒了好多选课和成绩管理的系统,一点一点看数据库。 照您那么说,绩点是和成绩有关的,如果这样的话,那就应该放在选课表了,初始也为空值。 然后等到老师提交成绩后再通过运算保存在选课表中。
二月十六 2017-07-06
  • 打赏
  • 举报
回复
仅供参考: 1、我觉得合理。 2、额,绩点是什么?(上学那会儿好像挺多人说,也没注意过……),是和课程有关还是和成绩有关?对应关系是什么?如果是一对一的关系,和谁有关就放到谁的表上。
AcHerat 2017-07-06
  • 打赏
  • 举报
回复
一切都按简单的先做处理 1、成绩和选课可以看做两个单独的个体,它们之间的联系可以通过课程号和学号来关联,这样就获得了某个学生在某个选课下的成绩 2、关于绩点,假设不考虑某个选课特殊的绩点情况,例如 95-100 是 5.0 - 5.4,那么你可以建立一个绩点表,给每个分数给个具体绩点,计算某个学生总的绩点时用分数关联绩点表即可。
二月十六 2017-07-06
  • 打赏
  • 举报
回复
引用 2 楼 mukes 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:] 仅供参考: 1、我觉得合理。 2、额,绩点是什么?(上学那会儿好像挺多人说,也没注意过……),是和课程有关还是和成绩有关?对应关系是什么?如果是一对一的关系,和谁有关就放到谁的表上。
成绩 绩点 60-64 1.5-1.9 65-69 2.0-2.4 70-74 2.5-2.9 75-79 3.0-3.4 80-84 3.5-3.9 85-89 3.0-3.4 90-94 3.5-3.9 95-100 4.0-4.5 ----------------------- 这是成绩和绩点的对应关系,我是根据我学校的教务系统类推的,这个数据库基本都是一个人在瞎搞,扒了好多选课和成绩管理的系统,一点一点看数据库。 照您那么说,绩点是和成绩有关的,如果这样的话,那就应该放在选课表了,初始也为空值。 然后等到老师提交成绩后再通过运算保存在选课表中。[/quote] 可以和成绩一样;也可以是一个计算列,在读取的时候,根据成绩然后生成对应的绩点也行;

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧