课程设计要做一个高校学生选课及成绩管理(我不是来找人帮我做的)
以下是需求描述:
以学生的学号为依据完成学生的选课登记处理。同一门课程可以由多名教师开设,学生选课时只能选择唯一一名教师开设的该门课程。在选课过程中,学生不能选择超出本专业开设的课程之外的专业课程,但可以一起选择同专业无关的基础课程。选课结束后,学生可以查询自己的选课情况,并可以进行修改和维护;教师可以登记自己开设的课程,并可以查询选择自己课程的学生的基本情况和汇总情况;教务管理部门可以查询学生的选课情况,并可以统计被选课教师的选课情况(如选课学生人数等),某门课程的选课学生情况,受欢迎程度等。最后完成选课成绩的登记处理。及学生信息的基本维护处理功能。
我设计的ER图如下:



请教大家:
问题1:
这个学生表的数据项这么多,要不要分成几个表呢?
问题2:
教务管理员的表和系统管理员的表被我独立开了,跟其他表没有联系。这样的设计有问题吗?(老师说过数据库中的每个表都要有联系。纠结中。。。。)
希望大家给点建议,本人第一次做系统
------解决方案--------------------
1、这个学生表的数据项这么多,要不要分成几个表呢?
这一个表就行,没有必要用太多的关联。小小的冗余OK的。
2、教务管理员的表和系统管理员的表被我独立开了,跟其他表没有联系。这样的设计有问题吗?(老师说过数据库中的每个表都要有联系。纠结中。。。。)
个人认为没有必要用两个,合并成一个,更好管理一些。比如以后要扩充权限,就单一的修改即可。
老师说的是基于关系数据库的理论,大部分的时候,是要有关系的。个别例外还是有的,否则nosql的数据库也不会产生对吧。
参考
------解决方案--------------------
1、学生表 要不要分成几个表?
这个要看你的具体情况,如果学生很多的话,可以适当的拆分成两个表,把一些常用的放在一个表里,不常用的放到另外一个表,以减少IO,提高数据查询效率。
2、教务员,系统管理员,教师 可以合并成一个表,用不同的工作组进行分开即可