架构实战营模块 3 作业
业务背景
问题背景
学校规模增大,学生数量日益增大,管理日渐复杂
花费大量资源,处理效率日益低下
目标
提高信息准确度以及日常管理效率
实现学生信息关系的系统化、规范化、自动化
统计学生各类信息,进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩查询等功能设计管理系统
基于以上问题和目标,故设计学生管理系统
约束和限制
干系人分析:老师、学生、学校管理
说明:由于是内部使用的系统,没有来自监管方的要求和约束,干系人主要是学校内部。
学校管理:
1.数据的安全完整性。
2.系统成本。
3.高可用。
老师、学生:操作简单,功能完善,服务的可用性。
总体架构
架构分析
主要是从高可用、高性能、可扩展、成本安全方面考虑,这里面最重要的两点就是数据的完整性,保证服务的可用性,然后再是成本安全可扩展。
总体架构
![](https://static001.geekbang.org/infoq/30/30efc6d9dc7d06084dad614ce76d5e50.png)
设计思路:nginx 为了将学生的请求接入,拆分成多系统主要是可扩展性,另外设计采用 mysql 主备模式主要是为了保证高可用,数据的完整性。
详细设计
关键设计
说明:主要介绍 3 个主要子系统包含哪些核心功能,如果是包含一些其他核心要点,也可进行说明。
学生子系统
账号登陆,学生可通过微信手机邮箱等方式登陆,但是要录入个人信息,包含班级身份等。
信息查询,包含个人信息,课程信息,成绩信息等。
信息修改,包含分配不同的组织层级等。
课程子系统
管理员能创建课程,分配老师和时间教师等信息。
老师能对排课信息进行编辑,管理员也能进行编辑。
学生能查看和选择自己的课程。
权限子系统
管理员能分配和创建角色,录入老师辅导员学生等角色,还能分配相关权限。
管理员能录入老师学生辅导员,每个角色都能对自己的信息进行编辑,注册信息需要管理员审核通过。
评论