oj项目后端分析

1.菜单管理

我们菜单管理有菜单表(sys_menu),还有用户角色表(sys_role),菜单表是用于管理我们用户所拥有的权限,不同的用户所看到的页面是不一样的,由于一些用户他能够看到题库管理和考题管理,还有一些用户看不到,并且就算能够看到题库管理和考题管理,它们里面所能看到的功能也是不一样的,有一些用户他有增加和删除的功能,有一些用户就只有查看的功能。

但如果我们管理员一个一个给用户权限的话会显得非常繁琐,所以我们还有一个角色菜单管理表(sys_role_2_menu),我们在这个关联表中创建用户角色表中的对应权限,我们拥有多选权限这个功能,在右侧中,只要勾选上我们想要给用户的权限,我们就在对应表中将它所对应的权限打钩,在数据库中我们就会将我们所选的权限id赋值为1,而当我们在使用这个用户组的时候,自动读取这个关联表,里面为1的内容就代表我们该用户所拥有的权限

2.内容管理

在内容管理中,我们拥有分类管理这个功能,使用的是分类表(category)我们通过我们表中的sort字段来管理分类的顺序,通过type字段来判断是什么分类类型,有考题分类和问题分类两个分类,这两个分类的话是为了方便我们后面的八股文管理和题库管理进行划分

在八股文管理中我们的数据存在八股文表(question_info)中,我们的新增问题是先获取我们的分类管理中的八股文分类的具体分类,我们通过difficulty_level字段来决定题目的难度,我们的难度星级回显为数字,而我们的上传图片使用的就是基本的io流上传。我们在内容管理中都有批量导入功能,我们是通过io流读取excel表格来实现的,我们将excel中的第二行读取出来放入数组中,我们在纵向读取数据整合后存入数据库中就实现了我们的批量导入功能。我们可以在详情页中切换上一页和下一页的功能,我们通过获取question_id的数据来判断是否有上或下一页,具体是我们要下一页就获取当前的<question_id的数据后取第一条就行了,上一页就反着来

我们题库管理跟八股文管理大体一致,数据存在题库表中(exam_question),唯一不同的是我们的题库表中还有对应题目的题目答案表(exam_question_item)

对于我们的经验分享中我们实现大体跟我们上面的是一样的

2.首页

我们的首页就是先从现在时间往前推一个星期,然后从后端获取我们要的数据传到前端就行了

3.app

我们的app跟内容管理差不多,但轮播图和问题反馈还是可以讲的。我们轮播图是先获取他主体的id,而后我们在app端中我们就可以回显出我们的图片,我们点击后会通过我们提供的主体的id查询数据库就可以找到我们的内容,在用户反馈中我们的实现原理是我们的用户提交了一个反馈,我们管理员回复是获取了用户反馈内容的id作为父id,用户再回复也是获取一开始的id,我们在后端中查我们的用户反馈只要通过id查该id下的字id回显到页面中就行了

4.app页面

我们在在线考试中先需要两个表,一个是用户考试表(app_exam)和考试问题表(exam_question_item),我们的用户考试表是我们用户的考试信息的,我们判断用户是否考试结束等,而我们的考试问题表是获取我们问题的,我们先获取是哪个用户的考试,我们在用户选择的分类下随机选50道题,而后我们获取用户选择的答案跟我们的正确答案进行比较,我们通过answer_result字段来获取是否正确,如果错了我们的值就为2,为1表示正确,在我们下次进行考试时我们将排除掉我们用户选择正确的答案

相关推荐
爱吃烤鸡翅的酸菜鱼4 分钟前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
超奇电子8 分钟前
阿里云OSS预签名URL上传与临时凭证上传的技术对比分析
数据库·阿里云·云计算
神仙别闹21 分钟前
基于C#+SQL Server实现(Web)学生选课管理系统
前端·数据库·c#
m0_6530313637 分钟前
PostgreSQL技术大讲堂 - 第97讲:PG数据库编码和区域(locale)答疑解惑
数据库·postgresql
会编程的林俊杰1 小时前
MySQL中的锁有哪些
数据库·mysql
cts6181 小时前
Milvus分布式数据库工作职责
数据库·分布式·milvus
周胡杰1 小时前
鸿蒙加载预置数据库-关系型数据库-如何读取本地/预制数据库
数据库·华为·harmonyos·鸿蒙
布朗克1681 小时前
java常见的jvm内存分析工具
java·jvm·数据库
胡八一1 小时前
SQLite / LiteDB 单文件数据库为何“清空表后仍占几 GB”?——原理解析与空间回收实战
jvm·数据库·sqlite
2401_831501732 小时前
Linux之Zabbix分布式监控篇(二)
数据库·分布式·zabbix