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表示正确,在我们下次进行考试时我们将排除掉我们用户选择正确的答案

相关推荐
ClouGence7 小时前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神9 小时前
三、用户与权限管理
数据库·mysql
麦聪聊数据1 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡1 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧1 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon1 天前
SQL学习指南——视图
数据库·sql
活宝小娜1 天前
mysql详细安装教程
数据库·mysql·adb
贤时间1 天前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心1 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle