高并发学生选课系统设计

高并发选课系统设计

简述

学生选课系统类似于秒杀系统,都是要在一个时间段内抗住高并发。因此我们的学生选课系统可以按照秒杀系统来设计。

学生选课系统的QPS其实远远不及秒杀系统,毕竟一个学校最多也就同时几千个人选课,因此在架构上可以不用设计的太麻烦,只要能抗住高并发,让学生都有操作空间就可。但本文想抛开现实,按照秒杀系统来好好设计一下选课系统。

开发技术

SpringCloud,Mybatis-plus,MySQL,Redis,redisson,RabbitMQ,Quartz

数据表设计

teacher(教师)表

  • id
  • 其他信息…

course(课程)表

  • id
  • course_type:课程状态。1-公共任选,2-专业限选
  • 其他信息…

student(学生)表

  • id
  • 其他信息…

courseclass(课程班)表

  • id
  • course_id:外键,课程id
  • teacher_id:外键,教师id
  • limit_number:限选人数
  • is_confirm:课程班状态。0-未确定(加入选课),1-已确定(不加入选课)
  • 其他信息…

courseclass_student(课程班-学生)表

  • id
  • student_id:外键,学生id
  • courseclass_id:外键,课程班id
  • state:选课状态。0-退选,1-已选

总结:学生和课程班是n-n关系,课程班和(教师,课程)是n-1关系。

系统流程

  1. 教师管理员在课程班列表中将想加入选课的课程班的状态修改为“未确定”,在之后的选课中,状态为“未确定”的课程班会参与选课

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZpxBLtD-1614411263619)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160206786.png)]

  2. 教师管理员选择选课时间,开启选课

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3zeNvAbL-1614411263622)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160332693.png)]

  3. 学生进入选课页面,等待选课

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-elaYe00M-1614411263625)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160434355.png)]

  4. 选课开始,展示所有参与选课的课程班

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5hQivg2-1614411263628)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160506328.png)]

  5. 点击“选课”,进入课程班详情展示页面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2Q19tsX-1614411263630)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160555400.png)]

  6. 学生完成选课,状态更新为"已选",已选人数+1,未选人数-1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmUz2ISK-1614411263633)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160607476.png)]

  7. 学生可以当即查看任选结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E7uvK58p-1614411263635)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160618799.png)]

  8. 学生可以选择退选已选课程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WPg6aByI-1614411263636)(C:\Users\49787\AppData\Roaming\Typora\typora-user-images\image-20210226160639030.png)]

  9. 退选后,可以在退选标签里查看结果,同时已选人数-1,未选人数+1

  • 5
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值