eaidb.sql 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. CREATE DATABASE eai CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. CREATE TABLE IF NOT EXISTS `eai`.`users` (
  3. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'User唯一标识(自增)',
  4. `name` varchar(50) NOT NULL COMMENT '真实姓名(必填)',
  5. `official_email` varchar(100) NOT NULL COMMENT '南大官邮,xxx@smail.nju.edu.cn(必填)',
  6. `official_number` varchar(20) NOT NULL COMMENT '南大学号、工号(必填)',
  7. `role` tinyint NOT NULL COMMENT '用户角色:0-ADMIN, 1-STUDENT, 2-TEACHER(对应枚举code)',
  8. `user_avatar` varchar(255) DEFAULT 'default_avatar_url' COMMENT '头像URL(有默认值、选填)',
  9. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,系统自动设置',
  10. `last_login_time` datetime COMMENT '上一次登陆时间(可选)',
  11. `english_name` varchar(50) COMMENT '英文名(选填)',
  12. `gender` tinyint COMMENT '性别:0-MAN, 1-WOMAN(对应枚举code)',
  13. `birthday` date COMMENT '生日(选填)',
  14. `phone` varchar(20) COMMENT '联系方式(选填)',
  15. `content_email` varchar(100) COMMENT '联系邮箱(选填)',
  16. `pid` varchar(50) COMMENT '门户id',
  17. `password` varchar(100) NOT NULL COMMENT '密码(加密存储)(必填)',
  18. PRIMARY KEY (`id`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
  20. CREATE TABLE IF NOT EXISTS `eai`.`translations` (
  21. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '翻译记录唯一标识(自增)',
  22. `user_id` bigint NOT NULL COMMENT '关联用户ID',
  23. `assignment_id` bigint COMMENT '关联任务ID(可选)',
  24. `query_text` text NOT NULL COMMENT '待翻译原文',
  25. `query_result` text NOT NULL COMMENT '翻译结果',
  26. `target_language` varchar(20) NOT NULL COMMENT '目标语言类型(如zh/en等)',
  27. `query_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '翻译请求时间',
  28. PRIMARY KEY (`id`),
  29. KEY `idx_user_id` (`user_id`),
  30. KEY `idx_assignment_id` (`assignment_id`)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='翻译记录表';
  32. CREATE TABLE IF NOT EXISTS `eai`.`sentence_evaluation` (
  33. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  34. `student_id` bigint NOT NULL COMMENT '学生ID',
  35. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  36. `no` int NOT NULL COMMENT '句子编号',
  37. `content` text COMMENT '原始内容',
  38. `sentence` text NOT NULL COMMENT '待评估句子',
  39. `evaluation` text COMMENT '评估结果',
  40. `version` int DEFAULT 1 COMMENT '版本号',
  41. `type` varchar(50) COMMENT '句子类型',
  42. `category` varchar(50) COMMENT '句子类别',
  43. PRIMARY KEY (`id`),
  44. KEY `idx_student_assignment` (`student_id`, `assignment_id`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='句子评估表';
  46. CREATE TABLE IF NOT EXISTS `eai`.`overall_evaluation` (
  47. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  48. `student_id` bigint NOT NULL COMMENT '学生ID',
  49. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  50. `content` text COMMENT '作业内容',
  51. `version` int NOT NULL DEFAULT 1 COMMENT '批改版本(跟随作业版本)',
  52. `evaluation` text COMMENT '整体评估结果',
  53. PRIMARY KEY (`id`),
  54. KEY `idx_student_assignment` (`student_id`, `assignment_id`)
  55. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='作业整体评估表';
  56. CREATE TABLE IF NOT EXISTS `eai`.`evaluation` (
  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. `version` int NOT NULL DEFAULT 1 COMMENT '评价版本号',
  61. `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '评价时间',
  62. `author` varchar(100) NOT NULL COMMENT '评价人',
  63. `overall` int COMMENT '整体评分',
  64. `sentence` int COMMENT '句子评分',
  65. PRIMARY KEY (`id`),
  66. KEY `idx_student_assignment` (`student_id`, `assignment_id`)
  67. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='作业评价表';
  68. CREATE TABLE IF NOT EXISTS `eai`.`course_student` (
  69. `enrollment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '选课记录ID(自增主键)',
  70. `course_id` bigint NOT NULL COMMENT '课程ID',
  71. `student_id` bigint NOT NULL COMMENT '学生ID',
  72. PRIMARY KEY (`enrollment_id`)
  73. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生选课关联表';
  74. CREATE TABLE IF NOT EXISTS `eai`.`student_assignment` (
  75. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID(自增)',
  76. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  77. `student_id` bigint NOT NULL COMMENT '学生ID',
  78. `score` decimal(5,2) COMMENT '作业得分(百分制)',
  79. `remark` varchar(500) COMMENT '教师评语',
  80. `file_url` varchar(255) COMMENT '作业文件OSS链接',
  81. `version` int NOT NULL DEFAULT 1 COMMENT '文件版本(用于onlyoffice key构建)',
  82. `status` varchar(20) NOT NULL DEFAULT 'UNSUBMITTED' COMMENT '完成状态:UNSUBMITTED/SUBMITTED/GRADED',
  83. `quill_content` text COMMENT 'Quill富文本内容',
  84. `text_content` text COMMENT '纯文本内容',
  85. `html_content` text COMMENT 'HTML格式内容',
  86. PRIMARY KEY (`id`),
  87. KEY `idx_student_assignment` (`student_id`, `assignment_id`)
  88. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生作业关联表';
  89. CREATE TABLE IF NOT EXISTS `eai`.`course` (
  90. `course_id` bigint NOT NULL AUTO_INCREMENT COMMENT '课程ID(自增主键)',
  91. `course_name` varchar(100) NOT NULL COMMENT '课程名称',
  92. `teacher_ids` text COMMENT '教师ID列表(JSON序列化字符串)',
  93. `teacher_portal_id` varchar(50) COMMENT '教师门户ID',
  94. `enroll_code` varchar(20) COMMENT '选课码(唯一)',
  95. `course_imgs` text COMMENT '课程图片列表(JSON序列化字符串)',
  96. `target_grade` varchar(50) COMMENT '目标年级',
  97. `start_time` datetime NOT NULL COMMENT '课程开始时间',
  98. `end_time` datetime NOT NULL COMMENT '课程结束时间',
  99. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  100. `description` text COMMENT '课程描述',
  101. PRIMARY KEY (`course_id`),
  102. KEY `idx_time_range` (`start_time`, `end_time`)
  103. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程信息表';
  104. CREATE TABLE IF NOT EXISTS `eai`.`behavior_record` (
  105. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '行为记录ID(自增主键)',
  106. `student_id` bigint NOT NULL COMMENT '学生ID',
  107. `assignment_id` bigint NOT NULL COMMENT '作业ID',
  108. `record_file_url` varchar(255) NOT NULL COMMENT '行为记录文件URL',
  109. `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  110. PRIMARY KEY (`id`),
  111. KEY `idx_student_assignment` (`student_id`, `assignment_id`)
  112. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生学习行为记录表';
  113. CREATE TABLE IF NOT EXISTS `eai`.`assignment` (
  114. `assignment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '作业ID(自增主键)',
  115. `course_id` bigint NOT NULL COMMENT '所属课程ID(外键)',
  116. `teacher_portal_id` varchar(50) COMMENT '教师门户ID',
  117. `assignment_name` varchar(100) NOT NULL COMMENT '作业名称',
  118. `description` text COMMENT '作业描述',
  119. `type` varchar(30) NOT NULL COMMENT '作业类型(如HOMEWORK/QUIZ/EXAM等)',
  120. `description_file` varchar(255) COMMENT '作业要求文件URL',
  121. `attachments` text COMMENT '附件URL列表(JSON格式)',
  122. `teacher_id` bigint NOT NULL COMMENT '发布教师ID',
  123. `start_time` datetime NOT NULL COMMENT '开始时间',
  124. `end_time` datetime NOT NULL COMMENT '截止时间',
  125. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  126. `engage_number` int COMMENT '参与人数',
  127. `correct_number` int COMMENT '批改人数',
  128. PRIMARY KEY (`assignment_id`),
  129. KEY `idx_time_range` (`start_time`, `end_time`)
  130. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程作业表';
  131. CREATE TABLE IF NOT EXISTS `eai`.`ai_speaking_assignment` (
  132. `ai_speaking_assignment_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'AI口语作业ID(自增主键)',
  133. `assignment_id` bigint NOT NULL COMMENT '关联的基础作业ID',
  134. `min_duration` int NOT NULL DEFAULT 60 COMMENT '最小持续时间(秒)',
  135. `min_interaction` int NOT NULL DEFAULT 5 COMMENT '最小交互次数',
  136. `survey_links` text COMMENT '调查问卷链接(JSON格式)',
  137. `survey_duration` int COMMENT '问卷预计完成时间(秒)',
  138. PRIMARY KEY (`ai_speaking_assignment_id`)
  139. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI口语专项作业表';