1 业务场景

做一个选课系统,供学生选课。有若干门课程,没门课程有安排的教室和时间。

学生可以选课,选课的时候,如果某门课程已经达到了人数上限(上限由课程所在教室的最大容纳人数决定)

2 设计参考

在阅读设计参考前,请先自己琢磨,最好能把数据表设计和页面设计写到一个文档里,再来看这个部分。

数据表设计

系统里有课程,学生,教室三类实体。

教室有名称,位置,最大容纳学生数量等属性。
课程有名称,课时,安排时间,教室等属性。课程的人数上限,由教室的最大容纳学生数量决定。

数据库中除了实体表外,还需要其他什么数据表…..

页面设计

基础配置模块:配置基础信息。
选课模块:当前登录用户,添加课程进行选课,已经排满的课程不能显出出来。
统计模块:统计所有课程的选课人数,点击数字可以查看学生列表。

3 进阶要求

在掌握基本的课程排课之后,我们来考虑真实业务场景。现实中,每门课程需要安排上课教室之外,还需要安排上课的节次。对于学生来说,每个课时只能选择对应节次开课的课程。

例如学生只有每周一,三,五 ,这三天的第三节和第四节是任选课时间。每门任选课都是每周一课时,被安排在可选的课时时间。

4 进阶设计参考

同样,大家先自己写设计,再来看这个。

数据表设计

增加数据表 任选课节次,有名称,周几,第几节等信息。
课程增加 节次 字段。

非实体表需要给…..

页面设计

基础配置中,课程配置没那么简单了,给课程安排课时节次和教室的时候,如果某个教室该课时已经有别的课程了,那么提示该课时已经安排的课程,并且要求重新设置教室。

学生选课的时候,不是任意添加选课的课程,而是列出所有任选课节次,可以对这些节次来安排课程,每次只能选择该节次对应的课程。