选课系统。
课程表和专业表一对一的关系(管理员开课时)。
学生表和专业表一对一的关系。
要求:专业课程面向部分专业学生可选,通用课程面向所有专业学生可选。
就想着能不能在课程实体里加一个list<专业>属性,让一个课程能够对应多个专业(学生选课时)。
这个"新的专业list",是否需要重新建立表呢?又怎么和原来的专业对应起来?即专业信息在动态改变的时候能够同步改变。还是说有其他的想法
如图所示:
1、建立一个专业和课程的中间关系表,表示专业课程的一对一关系,即课程的所属专业表
2、建立课程可选专业的中间表,课程和专业一对多的关系表。在课程列表页面,设置一个给课程添加可选专业的按钮,点击按钮时,将课程设置为哪些专业可选的数据插入该表,这样就能明确该课程哪些专业可选,后期可以动态绑定课程和可选专业之间的关系,查询该表就能获取你想要的list集合
3、学生选课时,根据学生的专业,然后去第2步创建的关系表找到自己可选的课程即可
你目前数据库逻辑描述是有问题的,先不考虑通用课程以及跨专业选课的问题,那么应该是:
1、课程与专业是多对一,即一个专业有多门课程,每门课程只属于一个专业
2、学生和专业是多对一,即一个专业有多个学生,每个学生只属于一个专业
3、每个学生选课时,只能在属于本专业的课程里选择
在此基础上进一步,就有两个需求方面的疑问:
1、跨专业选课的情况有吗,比如说计算机课,属于计算机专业,但是通信专业也可能要上这个课,有这种情况吗
2、通用课程是所有专业都可以选的吗?还是也有限制
加个状态,需要修改代码,加个新表,直接写新功能
课程表与专业表不应该是一对一,而是多对一,一个专业有多个课程
课程表有一个专业id的一段
如果专业id是空,代表通用课程。
专业信息修改,课程是通过专业id关联查询出来,也会实时修改
如有帮助,请采纳,十分感谢!
课程和专业应该是一对多的关系,没必要绕圈复杂化
多对多需要一张中间关系表来维护