摘要:随着高校教学信息化不断推进,传统纸笔考试与分散式成绩管理已难以满足大规模组考、过程监管与学情反馈的需要。针对在线考试中题目抄袭风险高、切屏行为难追溯、补考流程易与正考混杂、组卷效率偏低以及错题复习缺乏针对性等问题,本文设计并实现了高校在线考试与防作弊系统。系统面向管理员、教师与学生三类角色:管理员负责学生、教师、班级、考试类型、防作弊规则与公告等基础数据维护;教师完成题库与知识点管理、试卷组卷、考试发布、成绩查看、考试监控与补考安排;学生在前台完成在线答题、成绩查询、错题本练习、切屏警告查看,并可发起 AI 错题诊断。

系统采用 Spring Boot 与 Vue 前后端分离架构,以 MySQL 持久化业务数据,通过 JWT 实现多角色接口鉴权。在关键业务上,开考时可为每位考生独立生成题目乱序并写入考试场次;答题页监听切屏事件,结合防作弊规则完成警告判定与超限自动交卷;补考采用授权式双场次机制,强制使用不同于正考的试卷,并在成绩中区分正考与补考;试卷支持按题型、难度与数量进行规则化自动组卷;错题本对接火山方舟大模型,输出薄弱知识点与复习建议,并在调用失败时降级为知识点频次统计。经功能走查与主流程验证,系统能够支撑从组卷发布、在线监考到成绩反馈与补考安排的完整闭环,对同类高校在线考试平台建设具有一定参考价值。

数据库表:19张

创新点:题目乱序防作弊、切屏行为自动记录、补考授权与双场次机制、多维度规则自动组卷、AI大模型错题诊断与复习建议

演示视频

在线考试与防作弊系统

🍅文末获取联系🍅

🍅文末获取联系🍅

作者介绍:专注计算机编程,个人开发,坚持原创非工作室源码全网唯一

技术主流:SpringBoot + Vue 前后端分离,MySQL,Echarts数据统计,可本地运行

配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答

技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。

适用范围:软件工程、软件技术、计算机科学与技术、大数据、云计算、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计、小程序的毕设参考

开发文档创新点说明、功能需求分析、数据库表结构设计、后端接口设计、创新点代码分析

功能展示

用户

管理员+教师

数据库及架构

系统数据库设计为:

数据库设计:

/*
 Navicat Premium Data Transfer

 Source Server         : 1
 Source Server Type    : MySQL
 Source Server Version : 50722
 Source Host           : localhost:3306
 Source Schema         : 1vuez_exam_system

 Target Server Type    : MySQL
 Target Server Version : 50722
 File Encoding         : 65001

 Date: 16/08/2026 14:41:06
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for admins
-- ----------------------------
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 0禁用 1启用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for answers
-- ----------------------------
DROP TABLE IF EXISTS `answers`;
CREATE TABLE `answers`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `session_id` bigint(20) NOT NULL COMMENT '考试场次ID',
  `question_id` bigint(20) NOT NULL COMMENT '题目ID',
  `answer_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '作答内容',
  `is_correct` tinyint(4) NULL DEFAULT NULL COMMENT '是否正确 0错 1对 NULL待阅卷',
  `score` int(11) NULL DEFAULT 0 COMMENT '本题得分',
  `saved_at` datetime NULL DEFAULT NULL COMMENT '答案暂存时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '答题记录' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for anti_cheat_rules
-- ----------------------------
DROP TABLE IF EXISTS `anti_cheat_rules`;
CREATE TABLE `anti_cheat_rules`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '防作弊规则名称',
  `max_switch_count` int(11) NULL DEFAULT 3 COMMENT '允许最大切屏次数',
  `warning_threshold` int(11) NULL DEFAULT 1 COMMENT '几次切屏触发警告',
  `auto_submit_on_exceed` tinyint(4) NULL DEFAULT 0 COMMENT '超限是否自动交卷 0否1是',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 0禁用1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '防作弊规则' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for cheat_records
-- ----------------------------
DROP TABLE IF EXISTS `cheat_records`;
CREATE TABLE `cheat_records`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `session_id` bigint(20) NOT NULL COMMENT '考试场次ID',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `exam_id` bigint(20) NOT NULL COMMENT '考试ID',
  `event_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件类型 TAB_SWITCH切屏',
  `warning_level` tinyint(4) NULL DEFAULT 1 COMMENT '警告级别 1/2/3级',
  `detail` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行为详情描述',
  `created_at` datetime NULL DEFAULT NULL COMMENT '记录生成时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '防作弊记录' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for classes
-- ----------------------------
DROP TABLE IF EXISTS `classes`;
CREATE TABLE `classes`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '班级名称',
  `grade` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '年级',
  `major` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属专业',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '班主任教师ID',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 0禁用1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '班级' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for exam_sessions
-- ----------------------------
DROP TABLE IF EXISTS `exam_sessions`;
CREATE TABLE `exam_sessions`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `exam_id` bigint(20) NOT NULL COMMENT '发布考试ID',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `makeup_id` bigint(20) NULL DEFAULT NULL COMMENT '补考安排ID,正考为NULL',
  `question_order` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '乱序题目ID数组JSON',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态:0未交卷 1正常交卷 2补考完成 3违规强制交卷',
  `switch_count` int(11) NULL DEFAULT 0 COMMENT '本场切屏次数统计',
  `start_time` datetime NULL DEFAULT NULL COMMENT '开考时间',
  `submit_time` datetime NULL DEFAULT NULL COMMENT '交卷时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '考试场次' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for exam_stats
-- ----------------------------
DROP TABLE IF EXISTS `exam_stats`;
CREATE TABLE `exam_stats`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `stat_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '统计标识key',
  `stat_value` bigint(20) NULL DEFAULT 0 COMMENT '统计数值',
  `stat_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '统计中文说明',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '全局统计' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for exam_types
-- ----------------------------
DROP TABLE IF EXISTS `exam_types`;
CREATE TABLE `exam_types`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '考试类型名称',
  `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型说明',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '前端排序号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '考试类型' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for exams
-- ----------------------------
DROP TABLE IF EXISTS `exams`;
CREATE TABLE `exams`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '考试名称',
  `paper_id` bigint(20) NOT NULL COMMENT '关联试卷ID',
  `exam_type_id` bigint(20) NULL DEFAULT NULL COMMENT '考试类型ID',
  `class_id` bigint(20) NULL DEFAULT NULL COMMENT '参考班级ID',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '发布教师ID',
  `rule_id` bigint(20) NULL DEFAULT NULL COMMENT '防作弊规则ID',
  `start_time` datetime NULL DEFAULT NULL COMMENT '考试开始时间',
  `end_time` datetime NULL DEFAULT NULL COMMENT '考试截止时间',
  `duration_minutes` int(11) NULL DEFAULT 90 COMMENT '考试时长(分钟)',
  `shuffle_enabled` tinyint(4) NULL DEFAULT 1 COMMENT '题目乱序开启 0关闭1开启',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '考试状态0草稿1已发布2已结束',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '考试备注说明',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '考试发布' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for knowledge
-- ----------------------------
DROP TABLE IF EXISTS `knowledge`;
CREATE TABLE `knowledge`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '知识点名称',
  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父级知识点ID,顶级为NULL',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '创建教师ID',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '知识点标签' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for makeup_exams
-- ----------------------------
DROP TABLE IF EXISTS `makeup_exams`;
CREATE TABLE `makeup_exams`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `original_exam_id` bigint(20) NOT NULL COMMENT '原正式考试ID',
  `student_id` bigint(20) NOT NULL COMMENT '补考学生ID',
  `paper_id` bigint(20) NULL DEFAULT NULL COMMENT '补考试卷ID',
  `new_exam_id` bigint(20) NULL DEFAULT NULL COMMENT '补考对应的发布考试ID',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '安排补考教师ID',
  `reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '补考申请原因',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态:0待补考 1进行中 2已完成',
  `start_time` datetime NULL DEFAULT NULL COMMENT '补考开始时间',
  `end_time` datetime NULL DEFAULT NULL COMMENT '补考截止时间',
  `created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '补考安排' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for notices
-- ----------------------------
DROP TABLE IF EXISTS `notices`;
CREATE TABLE `notices`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '公告正文内容',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态0下架1正常发布',
  `created_at` datetime NULL DEFAULT NULL COMMENT '发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '平台公告' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for paper_questions
-- ----------------------------
DROP TABLE IF EXISTS `paper_questions`;
CREATE TABLE `paper_questions`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `paper_id` bigint(20) NOT NULL COMMENT '试卷ID',
  `question_id` bigint(20) NOT NULL COMMENT '题目ID',
  `score` int(11) NULL DEFAULT 5 COMMENT '该题目在本试卷中的分值',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '试卷内题目原始排序',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '试卷题目关联表' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for papers
-- ----------------------------
DROP TABLE IF EXISTS `papers`;
CREATE TABLE `papers`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '试卷名称',
  `total_score` int(11) NULL DEFAULT 100 COMMENT '试卷总分',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '组卷教师ID',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '试卷状态0草稿1已启用',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '试卷备注',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '试卷' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for questions
-- ----------------------------
DROP TABLE IF EXISTS `questions`;
CREATE TABLE `questions`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '题干内容',
  `question_type` tinyint(4) NOT NULL COMMENT '题型:1单选 2多选 3判断 4简答 5填空',
  `options_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '选择题选项JSON数组',
  `answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '标准答案',
  `analysis` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '试题解析',
  `score` int(11) NULL DEFAULT 5 COMMENT '题目默认分值',
  `difficulty` tinyint(4) NULL DEFAULT 1 COMMENT '难度:1简单 2中等 3困难',
  `knowledge_id` bigint(20) NULL DEFAULT NULL COMMENT '关联知识点ID',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '出题教师ID',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 0禁用1启用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '题库题目' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for scores
-- ----------------------------
DROP TABLE IF EXISTS `scores`;
CREATE TABLE `scores`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `session_id` bigint(20) NOT NULL COMMENT '考试场次ID',
  `exam_id` bigint(20) NOT NULL COMMENT '发布考试ID',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `total_score` int(11) NULL DEFAULT 0 COMMENT '试卷总分',
  `objective_score` int(11) NULL DEFAULT 0 COMMENT '客观题得分(单选多选判断填空)',
  `subjective_score` int(11) NULL DEFAULT 0 COMMENT '主观题得分(简答、论述)',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '成绩状态0待阅卷 1阅卷完成',
  `graded_at` datetime NULL DEFAULT NULL COMMENT '阅卷完成时间',
  `teacher_id` bigint(20) NULL DEFAULT NULL COMMENT '阅卷教师ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '成绩' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录密码密文',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生姓名',
  `student_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学号',
  `gender` tinyint(4) NULL DEFAULT NULL COMMENT '性别 1男 0女',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `class_id` bigint(20) NULL DEFAULT NULL COMMENT '所属班级ID',
  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像地址,空字符串代表无头像',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号是否启用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '学生' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for teachers
-- ----------------------------
DROP TABLE IF EXISTS `teachers`;
CREATE TABLE `teachers`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码密文',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '教师姓名',
  `teacher_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工号',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属院系',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号启用状态',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '教师' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for wrong_books
-- ----------------------------
DROP TABLE IF EXISTS `wrong_books`;
CREATE TABLE `wrong_books`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `question_id` bigint(20) NOT NULL COMMENT '错题ID',
  `exam_id` bigint(20) NULL DEFAULT NULL COMMENT '错题来源考试ID',
  `wrong_answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '当时错误作答内容',
  `review_count` int(11) NULL DEFAULT 0 COMMENT '重做练习次数',
  `last_review_at` datetime NULL DEFAULT NULL COMMENT '最近一次练习时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错题本' ROW_FORMAT = DYNAMIC;

SET FOREIGN_KEY_CHECKS = 1;

擅长功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。

获取联系

项目功能完整,可在本地运行,并可远程调试,确保运行顺利!

👇🏻👇🏻获取联系方式👇🏻👇🏻

毕业设计获取https://blog.csdn.net/qq_59059632/article/details/163759879?spm=1011.2415.3001.5331

更多推荐