eai.sql 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server : online_eai
  4. Source Server Type : MySQL
  5. Source Server Version : 80027
  6. Source Host : 8.130.28.19:3306
  7. Source Schema : eai
  8. Target Server Type : MySQL
  9. Target Server Version : 80027
  10. File Encoding : 65001
  11. Date: 18/08/2025 15:30:09
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for ai_speaking_assignment
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `ai_speaking_assignment`;
  19. CREATE TABLE `ai_speaking_assignment` (
  20. `ai_speaking_assignment_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'AI口语作业ID(自增主键)',
  21. `assignment_id` bigint NOT NULL COMMENT '关联的基础作业ID',
  22. `min_duration` int NOT NULL DEFAULT 60 COMMENT '最小持续时间(秒)',
  23. `min_interaction` int NOT NULL DEFAULT 5 COMMENT '最小交互次数',
  24. `survey_links` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '调查问卷链接(JSON格式)',
  25. `survey_duration` int NULL DEFAULT NULL COMMENT '问卷预计完成时间(秒)',
  26. PRIMARY KEY (`ai_speaking_assignment_id`) USING BTREE
  27. ) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI口语专项作业表' ROW_FORMAT = Dynamic;
  28. -- ----------------------------
  29. -- Table structure for assignment
  30. -- ----------------------------
  31. DROP TABLE IF EXISTS `assignment`;
  32. CREATE TABLE `assignment` (
  33. `assignment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '作业ID(自增主键)',
  34. `course_id` bigint NOT NULL COMMENT '所属课程ID(外键)',
  35. `assignment_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业名称',
  36. `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '作业描述',
  37. `type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业类型(如HOMEWORK/QUIZ/EXAM等)',
  38. `description_file` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '作业要求文件URL',
  39. `attachments` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '附件URL列表(JSON格式)',
  40. `teacher_id` bigint NOT NULL COMMENT '发布教师ID',
  41. `start_time` datetime NOT NULL COMMENT '开始时间',
  42. `end_time` datetime NOT NULL COMMENT '截止时间',
  43. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  44. `teacher_portal_id` bigint NULL DEFAULT NULL,
  45. `correct_number` int NULL DEFAULT 0,
  46. `engage_number` int NULL DEFAULT 0,
  47. `exam_mode` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否为考试模式:0-普通作业,1-考试模式',
  48. `exam_duration` int NULL DEFAULT NULL COMMENT '考试时长(分钟),仅考试模式有效',
  49. PRIMARY KEY (`assignment_id`) USING BTREE,
  50. INDEX `idx_time_range`(`start_time`, `end_time`) USING BTREE
  51. ) ENGINE = InnoDB AUTO_INCREMENT = 79 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '课程作业表' ROW_FORMAT = Dynamic;
  52. -- ----------------------------
  53. -- Table structure for behavior_record
  54. -- ----------------------------
  55. DROP TABLE IF EXISTS `behavior_record`;
  56. CREATE TABLE `behavior_record` (
  57. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '行为记录ID(自增主键)',
  58. `student_id` bigint NOT NULL COMMENT '学生ID',
  59. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  60. `record_file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '行为记录文件URL',
  61. `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  62. PRIMARY KEY (`id`) USING BTREE,
  63. INDEX `idx_student_assignment`(`student_id`, `assignment_id`) USING BTREE
  64. ) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生学习行为记录表' ROW_FORMAT = Dynamic;
  65. -- ----------------------------
  66. -- Table structure for class
  67. -- ----------------------------
  68. DROP TABLE IF EXISTS `class`;
  69. CREATE TABLE `class` (
  70. `class_id` bigint NOT NULL AUTO_INCREMENT,
  71. `class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  72. `class_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  73. `course_id` bigint NOT NULL,
  74. `stu_number` int NULL DEFAULT NULL,
  75. `teacher_id` bigint NULL DEFAULT NULL,
  76. `class_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '班级码',
  77. PRIMARY KEY (`class_id`) USING BTREE,
  78. INDEX `idx_class_course`(`course_id`) USING BTREE
  79. ) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  80. -- ----------------------------
  81. -- Table structure for class_student
  82. -- ----------------------------
  83. DROP TABLE IF EXISTS `class_student`;
  84. CREATE TABLE `class_student` (
  85. `id` bigint NOT NULL AUTO_INCREMENT,
  86. `class_id` bigint NOT NULL,
  87. `official_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  88. `state` int NULL DEFAULT NULL,
  89. `stu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  90. PRIMARY KEY (`id`) USING BTREE,
  91. INDEX `idx_class_student_class`(`class_id`) USING BTREE,
  92. INDEX `idx_class_student_official`(`official_number`) USING BTREE
  93. ) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  94. -- ----------------------------
  95. -- Table structure for course
  96. -- ----------------------------
  97. DROP TABLE IF EXISTS `course`;
  98. CREATE TABLE `course` (
  99. `course_id` bigint NOT NULL AUTO_INCREMENT COMMENT '课程ID(自增主键)',
  100. `course_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '课程名称',
  101. `teacher_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '教师ID列表(JSON序列化字符串)',
  102. `teacher_portal_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '教师门户ID',
  103. `enroll_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选课码(唯一)',
  104. `course_imgs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '课程图片列表(JSON序列化字符串)',
  105. `target_grade` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目标年级',
  106. `start_time` datetime NOT NULL COMMENT '课程开始时间',
  107. `end_time` datetime NOT NULL COMMENT '课程结束时间',
  108. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  109. `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '课程描述',
  110. `course_images` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
  111. PRIMARY KEY (`course_id`) USING BTREE,
  112. INDEX `idx_time_range`(`start_time`, `end_time`) USING BTREE,
  113. INDEX `idx_course_teacher_pid`(`teacher_portal_id`) USING BTREE,
  114. INDEX `idx_course_time_range`(`start_time`, `end_time`) USING BTREE
  115. ) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '课程信息表' ROW_FORMAT = Dynamic;
  116. -- ----------------------------
  117. -- Table structure for course_student
  118. -- ----------------------------
  119. DROP TABLE IF EXISTS `course_student`;
  120. CREATE TABLE `course_student` (
  121. `enrollment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '选课记录ID(自增主键)',
  122. `course_id` bigint NOT NULL COMMENT '课程ID',
  123. `student_id` bigint NOT NULL COMMENT '学生ID',
  124. PRIMARY KEY (`enrollment_id`) USING BTREE
  125. ) ENGINE = InnoDB AUTO_INCREMENT = 57 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生选课关联表' ROW_FORMAT = Dynamic;
  126. -- ----------------------------
  127. -- Table structure for evaluation
  128. -- ----------------------------
  129. DROP TABLE IF EXISTS `evaluation`;
  130. CREATE TABLE `evaluation` (
  131. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评价ID(自增主键)',
  132. `student_id` bigint NOT NULL COMMENT '学生ID',
  133. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  134. `version` int NOT NULL DEFAULT 1 COMMENT '评价版本号',
  135. `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '评价时间',
  136. `author` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '评价人',
  137. `overall` int NULL DEFAULT NULL COMMENT '整体评分',
  138. `sentence` int NULL DEFAULT NULL COMMENT '句子评分',
  139. PRIMARY KEY (`id`) USING BTREE,
  140. INDEX `idx_student_assignment`(`student_id`, `assignment_id`) USING BTREE,
  141. UNIQUE INDEX `uk_evaluation_assignment_student_version`(`assignment_id`, `student_id`, `version`) USING BTREE
  142. ) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作业评价表' ROW_FORMAT = Dynamic;
  143. -- ----------------------------
  144. -- Table structure for general_log
  145. -- ----------------------------
  146. DROP TABLE IF EXISTS `general_log`;
  147. CREATE TABLE `general_log` (
  148. `event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  149. `user_host` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  150. `thread_id` bigint UNSIGNED NOT NULL,
  151. `server_id` int UNSIGNED NOT NULL,
  152. `command_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  153. `argument` mediumblob NOT NULL
  154. ) ENGINE = CSV CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'General log' ROW_FORMAT = Dynamic;
  155. -- ----------------------------
  156. -- Table structure for overall_evaluation
  157. -- ----------------------------
  158. DROP TABLE IF EXISTS `overall_evaluation`;
  159. CREATE TABLE `overall_evaluation` (
  160. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  161. `student_id` bigint NOT NULL COMMENT '学生ID',
  162. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  163. `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '作业内容',
  164. `version` int NOT NULL DEFAULT 1 COMMENT '批改版本(跟随作业版本)',
  165. `evaluation` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '整体评估结果',
  166. PRIMARY KEY (`id`) USING BTREE,
  167. INDEX `idx_student_assignment`(`student_id`, `assignment_id`) USING BTREE,
  168. UNIQUE INDEX `uk_overall_eval_assignment_student_version`(`assignment_id`, `student_id`, `version`) USING BTREE
  169. ) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '作业整体评估表' ROW_FORMAT = Dynamic;
  170. -- ----------------------------
  171. -- Table structure for phone_verification
  172. -- ----------------------------
  173. DROP TABLE IF EXISTS `phone_verification`;
  174. CREATE TABLE `phone_verification` (
  175. `id` bigint NOT NULL,
  176. `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  177. `code_time` datetime(6) NULL DEFAULT NULL,
  178. `phone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  179. PRIMARY KEY (`id`) USING BTREE,
  180. UNIQUE INDEX `UK_1ebndp9bn7nuiyqujcmeifojg`(`phone`) USING BTREE,
  181. INDEX `verification_phone_index`(`phone`) USING BTREE
  182. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  183. -- ----------------------------
  184. -- Table structure for phone_verification_seq
  185. -- ----------------------------
  186. DROP TABLE IF EXISTS `phone_verification_seq`;
  187. CREATE TABLE `phone_verification_seq` (
  188. `next_val` bigint NULL DEFAULT NULL
  189. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  190. -- ----------------------------
  191. -- Table structure for sentence_evaluation
  192. -- ----------------------------
  193. DROP TABLE IF EXISTS `sentence_evaluation`;
  194. CREATE TABLE `sentence_evaluation` (
  195. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  196. `student_id` bigint NOT NULL COMMENT '学生ID',
  197. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  198. `no` int NOT NULL COMMENT '句子编号',
  199. `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '原始内容',
  200. `sentence` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '待评估句子',
  201. `evaluation` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '评估结果',
  202. `version` int NULL DEFAULT 1 COMMENT '版本号',
  203. `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '句子类型',
  204. `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '句子类别',
  205. PRIMARY KEY (`id`) USING BTREE,
  206. INDEX `idx_student_assignment`(`student_id`, `assignment_id`) USING BTREE,
  207. UNIQUE INDEX `uk_sentence_eval_assignment_student_version_no`(`assignment_id`, `student_id`, `version`, `no`) USING BTREE
  208. ) ENGINE = InnoDB AUTO_INCREMENT = 74 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '句子评估表' ROW_FORMAT = Dynamic;
  209. -- ----------------------------
  210. -- Migration notes (for existing databases)
  211. -- ----------------------------
  212. -- If your production DB already contains duplicate rows, the UNIQUE indexes above will fail to create.
  213. -- Recommended dedup strategy before adding UNIQUE indexes:
  214. --
  215. -- 1) evaluation: keep latest by time
  216. -- DELETE e1 FROM evaluation e1
  217. -- JOIN evaluation e2
  218. -- ON e1.assignment_id=e2.assignment_id AND e1.student_id=e2.student_id AND e1.version=e2.version
  219. -- AND e1.id < e2.id;
  220. --
  221. -- 2) overall_evaluation: keep latest row per (assignment_id, student_id, version)
  222. -- DELETE o1 FROM overall_evaluation o1
  223. -- JOIN overall_evaluation o2
  224. -- ON o1.assignment_id=o2.assignment_id AND o1.student_id=o2.student_id AND o1.version=o2.version
  225. -- AND o1.id < o2.id;
  226. --
  227. -- 3) sentence_evaluation: keep latest row per (assignment_id, student_id, version, no)
  228. -- DELETE s1 FROM sentence_evaluation s1
  229. -- JOIN sentence_evaluation s2
  230. -- ON s1.assignment_id=s2.assignment_id AND s1.student_id=s2.student_id AND s1.version=s2.version AND s1.no=s2.no
  231. -- AND s1.id < s2.id;
  232. -- ----------------------------
  233. -- Table structure for sign_records
  234. -- ----------------------------
  235. DROP TABLE IF EXISTS `sign_records`;
  236. CREATE TABLE `sign_records` (
  237. `id` bigint NOT NULL AUTO_INCREMENT,
  238. `official_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  239. `sign_in_time` datetime(6) NULL DEFAULT NULL,
  240. `sign_status` enum('SIGNED','NOT_SIGNED','FINISHED') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  241. `sign_task_id` bigint NOT NULL,
  242. `student_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  243. PRIMARY KEY (`id`) USING BTREE,
  244. INDEX `idx_sign_record_task`(`sign_task_id`) USING BTREE,
  245. INDEX `idx_sign_record_official_task`(`official_number`, `sign_task_id`) USING BTREE
  246. ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  247. -- ----------------------------
  248. -- Table structure for sign_tasks
  249. -- ----------------------------
  250. DROP TABLE IF EXISTS `sign_tasks`;
  251. CREATE TABLE `sign_tasks` (
  252. `id` bigint NOT NULL AUTO_INCREMENT,
  253. `class_id` bigint NOT NULL,
  254. `course_id` bigint NOT NULL,
  255. `create_time` timestamp NULL DEFAULT NULL,
  256. `end_time` timestamp NULL DEFAULT NULL,
  257. `sign_code` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  258. `sign_type` enum('NUMBER','QR') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  259. `signed_number` int NULL DEFAULT NULL,
  260. `status` enum('PROCESSING','FINISHED') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  261. `teacher_id` bigint NOT NULL,
  262. `total_number` int NULL DEFAULT NULL,
  263. `qr_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  264. `time` int NULL DEFAULT NULL,
  265. PRIMARY KEY (`id`) USING BTREE,
  266. INDEX `idx_sign_task_teacher`(`teacher_id`) USING BTREE,
  267. INDEX `idx_sign_task_class`(`class_id`) USING BTREE
  268. ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  269. -- ----------------------------
  270. -- Table structure for slow_log
  271. -- ----------------------------
  272. DROP TABLE IF EXISTS `slow_log`;
  273. CREATE TABLE `slow_log` (
  274. `start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  275. `user_host` mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  276. `query_time` time(6) NOT NULL,
  277. `lock_time` time(6) NOT NULL,
  278. `rows_sent` int NOT NULL,
  279. `rows_examined` int NOT NULL,
  280. `db` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  281. `last_insert_id` int NOT NULL,
  282. `insert_id` int NOT NULL,
  283. `server_id` int UNSIGNED NOT NULL,
  284. `sql_text` mediumblob NOT NULL,
  285. `thread_id` bigint UNSIGNED NOT NULL
  286. ) ENGINE = CSV CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'Slow log' ROW_FORMAT = Dynamic;
  287. -- ----------------------------
  288. -- Table structure for student_assignment
  289. -- ----------------------------
  290. DROP TABLE IF EXISTS `student_assignment`;
  291. CREATE TABLE `student_assignment` (
  292. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  293. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  294. `student_id` bigint NOT NULL COMMENT '学生ID',
  295. `score` decimal(5, 2) NULL DEFAULT NULL COMMENT '作业得分(百分制)',
  296. `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '教师评语',
  297. `file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '作业文件OSS链接',
  298. `version` int NOT NULL DEFAULT 1 COMMENT '文件版本(用于onlyoffice key构建)',
  299. `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'UNSUBMITTED' COMMENT '完成状态:UNSUBMITTED/SUBMITTED/GRADED',
  300. `quill_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'Quill富文本内容',
  301. `text_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '纯文本内容',
  302. `html_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'HTML格式内容',
  303. `submitted` tinyint(1) NULL DEFAULT 0 COMMENT '是否已交卷:0-未交卷,1-已交卷',
  304. PRIMARY KEY (`id`) USING BTREE,
  305. UNIQUE INDEX `uk_assignment_student_latest`(`assignment_id`, `student_id`) USING BTREE,
  306. INDEX `idx_student_assignment`(`student_id`, `assignment_id`) USING BTREE
  307. ) ENGINE = InnoDB AUTO_INCREMENT = 95 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生作业关联表' ROW_FORMAT = Dynamic;
  308. -- ----------------------------
  309. -- Table structure for student_assignment_history
  310. -- ----------------------------
  311. DROP TABLE IF EXISTS `student_assignment_history`;
  312. CREATE TABLE `student_assignment_history` (
  313. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  314. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  315. `student_id` bigint NOT NULL COMMENT '学生ID',
  316. `version` int NOT NULL COMMENT '提交版本号',
  317. `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提交状态',
  318. `quill_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'Quill富文本内容',
  319. `text_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '纯文本内容',
  320. `html_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'HTML格式内容',
  321. `submit_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间',
  322. PRIMARY KEY (`id`) USING BTREE,
  323. UNIQUE INDEX `uk_assignment_student_version`(`assignment_id`, `student_id`, `version`) USING BTREE,
  324. INDEX `idx_assignment_student_submit_time`(`assignment_id`, `student_id`, `submit_time`) USING BTREE
  325. ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生作业历史版本表' ROW_FORMAT = Dynamic;
  326. -- ----------------------------
  327. -- Table structure for translations
  328. -- ----------------------------
  329. DROP TABLE IF EXISTS `translations`;
  330. CREATE TABLE `translations` (
  331. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '翻译记录唯一标识(自增)',
  332. `user_id` bigint NOT NULL COMMENT '关联用户ID',
  333. `assignment_id` bigint NULL DEFAULT NULL COMMENT '关联任务ID(可选)',
  334. `query_text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '待翻译原文',
  335. `query_result` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '翻译结果',
  336. `target_language` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标语言类型(如zh/en等)',
  337. `query_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '翻译请求时间',
  338. PRIMARY KEY (`id`) USING BTREE,
  339. INDEX `idx_user_id`(`user_id`) USING BTREE,
  340. INDEX `idx_assignment_id`(`assignment_id`) USING BTREE
  341. ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '翻译记录表' ROW_FORMAT = Dynamic;
  342. -- ----------------------------
  343. -- Table structure for users
  344. -- ----------------------------
  345. DROP TABLE IF EXISTS `users`;
  346. CREATE TABLE `users` (
  347. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'User唯一标识(自增)',
  348. `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实姓名(必填)',
  349. `official_email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '南大官邮,xxx@smail.nju.edu.cn(必填)',
  350. `official_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '南大学号、工号(必填)',
  351. `role` smallint NULL DEFAULT NULL,
  352. `user_avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'default_avatar_url' COMMENT '头像URL(有默认值、选填)',
  353. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,系统自动设置',
  354. `last_login_time` datetime NULL DEFAULT NULL COMMENT '上一次登陆时间(可选)',
  355. `english_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '英文名(选填)',
  356. `gender` smallint NULL DEFAULT NULL,
  357. `birthday` date NULL DEFAULT NULL COMMENT '生日(选填)',
  358. `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系方式(选填)',
  359. `content_email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系邮箱(选填)',
  360. `pid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '门户id',
  361. `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码(加密存储)(必填)',
  362. `contact_email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  363. PRIMARY KEY (`id`) USING BTREE
  364. ) ENGINE = InnoDB AUTO_INCREMENT = 77 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
  365. SET FOREIGN_KEY_CHECKS = 1;