库表关系

老代还年轻 2020-10-30 08:13:01
有没有大佬看看我这个大学课表的库表关系是否合理。 我的主要思想是分为专业课程和个人选修课程,专业课程以班级为单位,所以建了班级表,专业课程表,课程安排表,教师表。 个人课程建了选修课表,选修课程安排表。根据学生选课情况具体查询 这里面的老师表是张通用表。当然专业、选修课程表也可设计成一张表,只不过分开会对选修模块好操作点。这个库表关系,最为重要的是维护两张关系表,维护难度也不算容易 对了,忘了说实现功能,功能实际上就是动态课表,根据学生登录账号的不同查询出每个学生的课程安排。这个构想时没想到这么复杂,真正做了觉得还挺复杂的,因为它们之间的关系都是一对多或者多对多,关联起来并不容易。而且还要考虑到后期可以动态删补课,一个健壮的库表关系设计还是挺重要的。 这样设计是否合理?感谢各位指导 图一是实现思路,图二是专业课er图,图三是模拟查询的专业课表。图书是专业课程安排表(关系表)
...全文
11171 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大叔obnijeh 2020-11-11
  • 打赏
  • 举报
回复
现在实际工作中都是两张表搞定。一张是学生信息表,其它信息全部放另一张表。
冰思雨 2020-11-02
  • 打赏
  • 举报
回复
没有第7张表的话,第2张表也可以不考虑。
冰思雨 2020-11-02
  • 打赏
  • 举报
回复
我大概看了一下,如果按照我上大学时的那种情况的话,应该设计6张表,比较合适. 1. 课程表(学校所有的课程信息):课程ID,课程名称,课程类型(必修选修,专业课还是公共课),教科书或者教材等信息。 2. 教室表:教室ID,所在校区,教学楼名称,楼层,教室编号。 3. 教师表:教师编号,姓名,年龄,专业,职称等信息。 4. 学生表:学生学号,姓名,年龄,专业,年级等信息。 5. 配课表(哪位教师上什么课):配课表ID,学期,教师ID,课程ID,备选教室(暂定的教室,有可能被调整)等等。 6. 选课表(学生与某个配好的课之间的关系):选课表ID,配课表ID,学生学号,选课时间等等。 如果还涉及到其他教务管理的话,可以考虑第7张表. 7. 排课表(教室安排):排课表ID,教室ID,配课表ID,上课时间,下课时间等等。疫情期间可以设计 应到人数,实到人数等信息。 写出来给楼主作为参考。
老代还年轻 2020-10-31
  • 打赏
  • 举报
回复
引用 1 楼 nayi_224的回复:
student teacher course三张基础表 teacher-course 教师-课 student-course 选课表 这五张表就能完成主要功能,设下的都是细节, 大学的班级与选课无关,就是一个展示用的数据,可以考虑单独建一个班级表,对应选课的应该是专业, 专业-课程 表 还是需要建一个的,用来校验学生是否完成选课。
大学的课表怎么跟班级没关系?一个班的专业课不都一样的。每个人有区别的只是选修课不同。 你这样将所有学生的课表信息都靠这张学生_课程关系表来维护,那么每个学生至少有15条信息,一个学校一两万多人。几十万的信息就放到一张表里查询效率能高?
nayi_224 2020-10-30
  • 打赏
  • 举报
回复
student teacher course三张基础表 teacher-course 教师-课 student-course 选课表 这五张表就能完成主要功能,设下的都是细节, 大学的班级与选课无关,就是一个展示用的数据,可以考虑单独建一个班级表,对应选课的应该是专业, 专业-课程 表 还是需要建一个的,用来校验学生是否完成选课。
课程简介 随着互联网的发展,软件的规模在逐渐变大,用关系型数据库如何存储和处理大规模的业务数据成为企业面临的挑战, 关系型数据库作为OLTP(联机事务处理过程)系统的首选毋庸置疑,但是关系型数据面对大规模数据的处理有其先天的不足,比如单表存储上千万数据时便会出现不同程度的处理速度缓慢问题,如何解决?分库分表技术就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成 ,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。本课程将系统的讲解分库分表技术。 课程价值 分库分表技术是为解决关系型数据库存储和处理大规模数据的问题,主要应用于OLTP系统,它与应用于OLAP(联机分析处理)的大数据技术有不同的应用场景,本课程本着从解决生产实际问题出发,讲授分库分表技术的解决方案,包括:垂直分库、垂直分表、水平分库、水平分表、读写分离,涵盖了分库分表的各种方案,并且深入讲解Sharding-JDBC框架的原理及使用方法,通过学习本课程可以快速应用到生产实践中。 课程优势 本课程不仅讲解多种有效的分库分表的解决方案,还深入讲解了Sharding-JDBC框架的原理和使用方法,Sharding-JDBC是一套轻量级的对代码零侵入的框架,在生产中有广泛的使用。本课程从思想原理、技术框架、案例实操三个方面去学习,可以快速的将分库分表技术应用到生产实践中,解决大数据存储与处理的问题。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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