博客考试管理系统

1.0–博客考试管理系统 表初步设计

  • 1.用户表(user) 编号(id) ,用户名(username),密码(password),电话(phone),邮箱(email),状态(status),头像(image),签名(sign)创建时间(created),修改时间(updated)
  • 2.题库表(topic) 编号(id),题目((topic_name ), 题目内容(topic_body),所属科目(subject ), 难度(difficulty ), 上传者(writer ),上传者ID(writer_id),试题状态(status)
  • 3.答案表(anwer) 编号(id),对应题目编号(topic_id),答案选项(options),答案内容(options_body),正确性(correct)
  • 4.菜单表(menu) 编号(id),菜单名(name),父级(parent_id),路径(path),层级(level),图标(icon)创建时间(created),更新时间(updated),菜单状态(status)
  • 5.科目表(subject):科目编号(id),科目名字(name),科目描述(name_desc),科目状态(status),创建时间(created),修改时间(updated)
  • 6.角色表(role) 角色编号(role_id),角色姓名(role_name),角色职责(role_duty),角色状态(role_status),角色数量(role_num),创建时间(created),修改时间(updated)
  • 7.用户角色关联表(user_role)关系编号(id) 用户id(user_id),角色id(role_id),创建时间(created ),修改时间(updated)
  • 8.角色菜单关联表(role_menu),关系编号(id),角色id(role_id),菜单id(menu_id),创建时间(created),修改时间(updated)
  • 9.好友表(friend)表编号(id),用户id(user_id),好友id(friend_id),好友个数(friend_num),添加时间(created)
  • 10.收藏夹(collect)表编号(id),用户id(user_id) ,试题(topic_id), 科目(subject_id),收藏时间(created)
  • 11.成绩表(grade)表编号(id),用户id(user_id),所属科目(subject_id),成绩分数(grade)考试时间(created)
  • 12.好友请求表(user_request) 请求编号(id),用户id(user_id),请求者id(request_id),请求时间(created)

1.1–具体表描述

1.1-1 用户表
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| username | varchar(255) | NO   |     | NULL    |                |
| password | varchar(255) | NO   |     | NULL    |                |
| phone    | varchar(20)  | YES  |     | NULL    |                |
| email    | varchar(255) | YES  |     | NULL    |                |
| status   | int(1)       | YES  |     | 1       |                |
| image    | varchar(255) | YES  |     | NULL    |                |
| created  | date         | YES  |     | NULL    |                |
| updated  | date         | YES  |     | NULL    |                |
| sign     | varchar(255) | YES  |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
1.1-2 题库表
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(20)      | NO   | PRI | NULL    | auto_increment |
| topic_name | varchar(255) | YES  |     | NULL    |                |
| topic_body | text         | YES  |     | NULL    |                |
| subject    | int(11)      | YES  | MUL | NULL    |                |
| difficulty | int(2)       | YES  |     | NULL    |                |
| writer     | varchar(255) | YES  |     | NULL    |                |
| writer_id  | int(11)      | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
1.1-3 答案表
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| topic_id     | int(5)       | YES  | MUL | NULL    |                |
| options      | varchar(50)  | YES  |     | NULL    |                |
| options_body | varchar(255) | YES  |     | NULL    |                |
| correct      | int(2)       | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
1.1-4菜单表
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| NAME      | varchar(20)  | YES  |     | NULL    |                |
| parent_id | int(5)       | YES  |     | NULL    |                |
| path      | varchar(15)  | YES  |     | NULL    |                |
| level     | int(5)       | YES  |     | NULL    |                |
| icon      | varchar(255) | YES  |     | NULL    |                |
| created   | date         | YES  |     | NULL    |                |
| updated   | date         | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
1.1-5科目表
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(20)      | NO   | PRI | NULL    | auto_increment |
| name      | varchar(765) | YES  |     | NULL    |                |
| name_desc | varchar(765) | YES  |     | NULL    |                |
| status    | int(2)       | YES  |     | NULL    |                |
| created   | date         | YES  |     | NULL    |                |
| updated   | date         | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
1.1-6角色表
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| role_id     | int(100)     | NO   | PRI | NULL    | auto_increment |
| role_name   | varchar(255) | YES  |     | NULL    |                |
| role_duty   | varchar(255) | YES  |     | NULL    |                |
| role_status | int(2)       | YES  |     | NULL    |                |
| role_num    | int(100)     | YES  |     | NULL    |                |
| created     | date         | YES  |     | NULL    |                |
| updated     | date         | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
1.1-7用户角色关联表
+---------+----------+------+-----+---------+----------------+
| Field   | Type     | Null | Key | Default | Extra          |
+---------+----------+------+-----+---------+----------------+
| id      | int(20)  | NO   | PRI | NULL    | auto_increment |
| user_id | int(20)  | YES  |     | NULL    |                |
| role_id | int(20)  | YES  |     | NULL    |                |
| created | datetime | YES  |     | NULL    |                |
| updated | datetime | YES  |     | NULL    |                |
+---------+----------+------+-----+---------+----------------+
1.1-8角色菜单关联表
+---------+----------+------+-----+---------+----------------+
| Field   | Type     | Null | Key | Default | Extra          |
+---------+----------+------+-----+---------+----------------+
| id      | int(20)  | NO   | PRI | NULL    | auto_increment |
| role_id | int(20)  | YES  |     | NULL    |                |
| menu_id | int(20)  | YES  |     | NULL    |                |
| created | datetime | YES  |     | NULL    |                |
| updated | datetime | YES  |     | NULL    |                |
+---------+----------+------+-----+---------+----------------+
1.1-9好友表
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(20)  | NO   | PRI | NULL    | auto_increment |
| user_id    | int(20)  | YES  |     | NULL    |                |
| friend_id  | int(20)  | YES  |     | NULL    |                |
| friend_num | int(20)  | YES  |     | NULL    |                |
| created    | datetime | YES  |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+
1.1-10收藏夹
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(20)  | NO   | PRI | NULL    | auto_increment |
| user_id    | int(20)  | YES  |     | NULL    |                |
| topic_id   | int(20)  | YES  |     | NULL    |                |
| subject_id | int(20)  | YES  |     | NULL    |                |
| created    | datetime | YES  |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+
1.1-11成绩表
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(20)  | NO   | PRI | NULL    | auto_increment |
| user_id    | int(20)  | YES  |     | NULL    |                |
| subject_id | int(20)  | YES  |     | NULL    |                |
| grade      | int(20)  | YES  |     | NULL    |                |
| created    | datetime | YES  |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+
1.1-12好友请求表
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(20)  | NO   | PRI | NULL    | auto_increment |
| user_id    | int(20)  | YES  |     | NULL    |                |
| request_id | int(20)  | YES  |     | NULL    |                |
| created    | datetime | YES  |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+

2.0–功能模块

2.1 登陆注册流程
  • 注册: 1.注册校验 2.MD5加密 3.存表
  • 登录: 1.校验 2.路由拦截守卫 3.表查询 4.MD5加密查询
  • 登录跳转到用户的默认界面
    
2.2 菜单栏表格功能
菜单栏(VUE加 Element-UI)
  • 1.表结构定义好层级,父级
  • 2.接收封装的菜单数组
  • 3.前端展示
业务
  • 面包屑
  • 2.卡片页
  • 3.table 表格
  • 4.分页查询(接收3条业务数据,定义返回类型,) 两种写法,第一种mapper层@Select注解,第二种 利用MybatisPlus的分页对象+条件构造
2.3业务状态修改(status)

业务说明:
通过开关,可以控制数据类型的true/false
参数说明:1.传递userID主键
2.传递当前状态信息 true false
前端JS: 有个作用域插槽(slot-scope)利用这个定义作用域,来选择当前需要修改的对应id或者对应的数据

2.4用户新增操作
  • 添加对话框 通过属性dialogVisible 控制对话框是否可见.
2.5修改用户信息

业务分析–信息回显

  • 获取用户ID,动态查询后台数据库信息,之后实现数据回显操作 最新数据
  • 利用作用域插槽,获取当前行对象,之后实现数据回显 页面数据
2.6修改后的确认点击事件
  • 对话框的修改事件
2.7全局异常处理机制
说明:后端服务器发生了运行时异常,应当第一时间通知用户,否则用户没有任何提示,影响用户体验

分析:

  • 页面没有提示的原因,服务器没有返回201的报错数据
  • 后端服务器报错之后,没有处理
    采用AOP来解决
    AOP的说明:面向想切面编程
    AOP说明:
    名称:“面向切面编程”
    作用:“在不影响源码的情况下,对方法进行扩展,降低了业务的耦合性”
    通知:
    1.前置通知 before
    2.后置通知 afterReturning
    3.异常通知 afterThrowing
    4.最终通知 after
    上述的四大通知 不能改变程序的运行的状态
    5.环绕通知 around
    环绕通知是功能最为强大的通知方法,可以控制程序的流转过程
2.7Spring中的事物机制

说明
如果后台服务器发生了问题,那么数据信息应该回滚,不应该提交
事物作用:保证正数据的隔离性、持久性、原子性、一致性
@Trasactional加这个注解就解决了

3.0数据的自动同填充功能

业务说明:完成数据库的入库操作的时候,,其中创建时间和修改时间都是需要操作的数据,但是每次都需要操作,就不智能,这种公共的部分应该由框架帮做。

3.1自动填充功能的实现

在入库操作时候,自动填充创建时间
在入库操作是狗,自动填充更新时间

//pojo基类,完成2个任务,2个日期,实现序列化
@Data
@Accessors(chain=true)
public class BasePojo implements Serializable{
	@TableField(fill = FieldFill.INSERT)
	private Date created;	//表示入库时需要赋值
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updated;	//表示入库/更新时赋值.
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值