|
@@ -1,35 +1,41 @@
|
|
|
# 智能题库学习系统 (Smart Question Bank Learning System)
|
|
|
|
|
|
-## 项目简介
|
|
|
+[Previous content remains unchanged...]
|
|
|
|
|
|
-这是一个基于 Python 开发的智能题库学习系统,旨在帮助学生进行高效的题目练习和知识掌握。系统具备题目管理、智能练习、错题本、学习进度追踪等功能,让学习更有针对性和效果。
|
|
|
+## 数据模型说明
|
|
|
|
|
|
-## 主要功能
|
|
|
+### BaseModel
|
|
|
|
|
|
-### 1. 题库管理
|
|
|
+- 基础模型,包含 id、创建时间、更新时间等通用字段
|
|
|
+- 提供 CRUD 操作的基类功能
|
|
|
+- 继承自 SQLAlchemy 的 Base 类
|
|
|
|
|
|
-- 支持多学科题目录入(数学、语文、英语等)
|
|
|
-- 题目分类管理(按照难度、知识点、题型等)
|
|
|
-- 支持多种题型(选择题、填空题、简答题等)
|
|
|
-- 每道题目包含详细解析和知识点说明
|
|
|
-- 题目标签系统,方便分类和搜索
|
|
|
+### UserModel
|
|
|
|
|
|
-### 2. 智能练习
|
|
|
+- 用户模型,对应 sys_users 表
|
|
|
+- 包含用户名、密码、年级等字段
|
|
|
+- 与 RoleModel 多对多关系
|
|
|
|
|
|
-- 根据学生水平自动推荐适合的题目
|
|
|
-- 支持自选题型和难度进行练习
|
|
|
-- 练习过程中即时查看答案和解析
|
|
|
-- 练习完成后显示得分和错题分析
|
|
|
-- 优化推荐算法,结合用户历史表现和学习目标
|
|
|
-- 个性化推荐,根据用户偏好推荐题目
|
|
|
-- 自适应练习模式,动态调整题目难度
|
|
|
+### RoleModel
|
|
|
|
|
|
-### 3. 错题本功能
|
|
|
+- 角色模型,对应 sys_roles 表
|
|
|
+- 包含角色名称、代码、描述等字段
|
|
|
+- 与 UserModel 和 PermissionModel 多对多关系
|
|
|
|
|
|
-- 自动收集做错的题目
|
|
|
-- 错题分类整理
|
|
|
-- 支持错题重复练习
|
|
|
-- 错题数据分析,找出薄弱知识点
|
|
|
+### PermissionModel
|
|
|
+
|
|
|
+- 权限模型,对应 sys_permissions 表
|
|
|
+- 包含权限名称、代码、描述等字段
|
|
|
+- 与 RoleModel 多对多关系
|
|
|
+
|
|
|
+### UserRoleModel
|
|
|
+
|
|
|
+- 用户-角色关联表模型,对应 sys_user_roles 表
|
|
|
+- 包含 user_id 和 role_id 两个外键
|
|
|
+
|
|
|
+### RolePermissionModel
|
|
|
+
|
|
|
+- 角色-权限关联表模型,对应 sys_role_permissions 表
|
|
|
- 错题原因分析,帮助用户理解错误原因
|
|
|
- 错题标签,方便分类和复习
|
|
|
- 错题相似题推荐,巩固薄弱知识点
|
|
@@ -60,13 +66,13 @@
|
|
|
- username: 用户名
|
|
|
- password: 密码
|
|
|
- grade: 年级
|
|
|
-- create_time: 创建时间
|
|
|
-- update_time: 更新时间
|
|
|
-- create_id: 创建者 ID
|
|
|
-- update_id: 更新者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_at: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- update_by: 更新者 ID
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
- preferences: 学习偏好
|
|
|
- goals: 学习目标
|
|
|
- learning_style: 学习风格
|
|
@@ -79,21 +85,21 @@
|
|
|
- code: 角色代码
|
|
|
- description: 角色描述
|
|
|
- status: 状态(0:禁用,1:启用)
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_by: 更新者 ID
|
|
|
+- update_at: 更新时间
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
-### 系统用户角色表(sys_user_roles)
|
|
|
+### 系统用户角色表(sys_user_roles) 用户与角色多对多
|
|
|
|
|
|
- id: 主键 ID
|
|
|
- user_id: 用户 ID
|
|
|
- role_id: 角色 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- create_id: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- create_by: 创建者 ID
|
|
|
|
|
|
### 系统权限表(sys_permissions)
|
|
|
|
|
@@ -102,23 +108,23 @@
|
|
|
- score: 权限作用域 U: 用户,R: 角色
|
|
|
- value: 权限值
|
|
|
- description: 权限描述
|
|
|
-- create_time: 创建时间
|
|
|
-- create_id: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- create_by: 创建者 ID
|
|
|
|
|
|
-### 字典类型表(sys_dict_type)
|
|
|
+### 字典类型表(sys_dict_type) 可以有多个字典数据,一对多
|
|
|
|
|
|
- id: 字典类型 ID
|
|
|
- name: 字典名称
|
|
|
- type: 字典类型
|
|
|
- status: 状态(0:禁用,1:启用)
|
|
|
- remark: 备注
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_by: 更新者 ID
|
|
|
+- update_at: 更新时间
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
### 字典数据表(sys_dict_data)
|
|
|
|
|
@@ -129,15 +135,15 @@
|
|
|
- sort: 排序
|
|
|
- status: 状态(0:禁用,1:启用)
|
|
|
- remark: 备注
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_by: 更新者 ID
|
|
|
+- update_at: 更新时间
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
-### 题目表(questions)
|
|
|
+### 题目表(questions) 包含多个选项,一对多
|
|
|
|
|
|
- id: 题目 ID
|
|
|
- subject: 学科
|
|
@@ -146,39 +152,29 @@
|
|
|
- content: 题目内容
|
|
|
- answer: 答案
|
|
|
- explanation: 解析
|
|
|
-- knowledge_points: 相关知识点
|
|
|
- version: 题目版本
|
|
|
-- status: 审核状态
|
|
|
- tags: 题目标签
|
|
|
-- creator_id: 题目创建者
|
|
|
-- reviewer_id: 题目审核者
|
|
|
-- create_time: 创建时间
|
|
|
-- update_time: 更新时间
|
|
|
-- create_id: 创建者 ID
|
|
|
-- update_id: 更新者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_at: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- update_by: 更新者 ID
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
-### 练习记录表(practice_records)
|
|
|
+### 题目选项表(question_options)
|
|
|
|
|
|
-- id: 记录 ID
|
|
|
-- user_id: 用户 ID
|
|
|
+- id: 选项 ID
|
|
|
- question_id: 题目 ID
|
|
|
-- is_correct: 是否正确
|
|
|
-- practice_time: 练习时间
|
|
|
-- time_spent: 用时
|
|
|
-- steps: 答题步骤
|
|
|
-- thinking_time: 思考时间
|
|
|
-- confidence_level: 答题信心
|
|
|
-- feedback: 用户反馈
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- content: 选项内容
|
|
|
+- is_correct: 是否正确答案
|
|
|
+- create_at: 创建时间
|
|
|
+- update_at: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- update_by: 更新者 ID
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
### 知识点表(knowledge_points)
|
|
|
|
|
@@ -188,32 +184,80 @@
|
|
|
- subject: 所属学科
|
|
|
- difficulty: 难度等级
|
|
|
- prerequisite: 先修知识点
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_by: 更新者 ID
|
|
|
+- update_at: 更新时间
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
+
|
|
|
+### 题目知识点关联表(question_knowledge_points) 多对多
|
|
|
+
|
|
|
+- id: 关联 ID
|
|
|
+- question_id: 题目 ID
|
|
|
+- knowledge_point_id: 知识点 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- create_by: 创建者 ID
|
|
|
|
|
|
-### 学习路径表(learning_paths)
|
|
|
+### 错题表(wrong_questions)
|
|
|
|
|
|
-- id: 路径 ID
|
|
|
+- id: 错题 ID
|
|
|
- user_id: 用户 ID
|
|
|
-- target_knowledge_point: 目标知识点
|
|
|
-- path: 学习路径
|
|
|
-- progress: 当前进度
|
|
|
-- create_id: 创建者 ID
|
|
|
-- create_time: 创建时间
|
|
|
-- update_id: 更新者 ID
|
|
|
-- update_time: 更新时间
|
|
|
+- question_id: 题目 ID
|
|
|
+- user_answer: 用户答案
|
|
|
+- correct_answer: 正确答案
|
|
|
+- analysis: 解析
|
|
|
+
|
|
|
+### 练习表(exercises)
|
|
|
+
|
|
|
+- id: 练习 ID
|
|
|
+- name: 练习名称
|
|
|
+- subject: 学科
|
|
|
+- difficulty: 难度等级
|
|
|
+- type: 涉及的题型
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_by: 更新者 ID
|
|
|
+- update_at: 更新时间
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
+
|
|
|
+### 练习题目关联表(exercise_question_relations) 一对多
|
|
|
+
|
|
|
+- id: 关联 ID
|
|
|
+- exercise_id: 练习 ID
|
|
|
+- question_id: 题目 ID
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+
|
|
|
+### 练习记录表(exercise_records)
|
|
|
+
|
|
|
+- id: 练习记录 ID
|
|
|
+- user_id: 用户 ID
|
|
|
+- exercise_id: 练习 ID
|
|
|
+- start_time: 开始时间
|
|
|
+- end_time: 结束时间
|
|
|
+- duration: 练习时长
|
|
|
+- score: 练习得分
|
|
|
+- create_by: 创建者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+
|
|
|
+### 练习记录详情表(exercise_record_details) 一对多
|
|
|
+
|
|
|
+- id: 练习记录详情 ID
|
|
|
+- exercise_record_id: 练习记录 ID
|
|
|
+- question_id: 题目 ID
|
|
|
+- correct_answer: 正确答案
|
|
|
+- user_answer: 用户答案
|
|
|
+- is_correct: 是否正确
|
|
|
+- last_update_time: 最后更新时间
|
|
|
|
|
|
### 考试成绩表(exam_scores)
|
|
|
|
|
|
- id: 成绩 ID
|
|
|
+- exercise_id: 练习 ID (可选,用于记录考试成绩)
|
|
|
- user_id: 用户 ID
|
|
|
- exam_name: 考试名称
|
|
|
- subject: 考试科目
|
|
@@ -221,13 +265,13 @@
|
|
|
- total_score: 总分
|
|
|
- exam_date: 考试日期
|
|
|
- remark: 备注
|
|
|
-- create_time: 创建时间
|
|
|
-- update_time: 更新时间
|
|
|
-- create_id: 创建者 ID
|
|
|
-- update_id: 更新者 ID
|
|
|
+- create_at: 创建时间
|
|
|
+- update_at: 更新时间
|
|
|
+- create_by: 创建者 ID
|
|
|
+- update_by: 更新者 ID
|
|
|
- is_deleted: 是否删除 (0:未删除, 1:已删除)
|
|
|
-- delete_time: 删除时间
|
|
|
-- delete_id: 删除者 ID
|
|
|
+- delete_at: 删除时间
|
|
|
+- delete_by: 删除者 ID
|
|
|
|
|
|
## 使用说明
|
|
|
|