Appearance
数据库设计说明书v1.1
模多多教育版 数据库设计说明书 版本:V1.0 日期:2025-07-26
1. 实体关系图 (ERD)
下图展示核心实体及其关系:
2. 表结构说明
schools
记录学校维度信息,支持多校区部署场景。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 学校ID |
| name | VARCHAR | 学校名称 |
| region | VARCHAR | 所属地区 |
| created_at | DATETIME | 创建时间 |
users
系统账号表,支持学生、教师、学校管理员和平台管理员角色。 学生(我们设置的学号【唯一标识符-账号】、姓名【必填-映射密码】、年龄、性别、年级班级【外键关联表】)上传excel表信息录入 教师(id、密码【自定义】、上级学校账号、年级班级【外键关联表】) 学校账号(id、密码【自定义】、学校名称) 平台管理员账号(id、账号(admin)、密码(9Zhangzhiguang))
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 用户ID |
| username | VARCHAR | 登录用户名 |
| password_hash | VARCHAR | 密码哈希 |
| role | ENUM | 账号角色 |
| school_id | INT, FK | 所属学校ID |
| parent_user_id | INT, FK | 上级账号 |
| real_name | VARCHAR | 真实姓名 |
| created_at | DATETIME | 创建时间 |
classes
教学班级表,一对多关联学校、教师。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 班级ID |
| school_id | INT, FK | 所属学校 |
| name | VARCHAR | 班级名称(几年几班) |
| teacher_id | INT, FK | 教师ID |
| edu_year | DATETIME | 学年 |
class_members
班级成员映射表,用于学生与班级多对多关系。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | ID |
| class_id | INT, FK | 班级ID |
| user_id | INT, FK | 学生ID |
| joined_at | DATETIME | 加入时间 |
courses (默认课件字段、公开/非公开字段)
课程主表,包含课程元数据和章节结构 JSON。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 课程ID |
| title | VARCHAR | 课程标题 |
| description | TEXT | 简介 |
| teacher_id | INT, FK | 发布教师 |
| syllabus_json | JSON | 教学大纲(章节结构) |
| created_at | DATETIME | 创建时间 |
course_enrollments
教师控制选择学生加入哪些课程与进度跟踪表。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 记录ID |
| course_id | INT, FK | 课程ID |
| user_id | INT, FK | 学生ID |
| progress | FLOAT | 学习进度百分比 |
| enrolled_at | DATETIME | 选课时间 |
lessons
课程下的课件/章节信息。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 章节ID |
| course_id | INT, FK | 所属课程ID |
| title | VARCHAR | 章节标题 |
| content_url | VARCHAR | 教学内容链接 |
| sort_order | INT | 排序编号 |
tasks
章节内的学习任务,含 AI 互动配置。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 任务ID |
| lesson_id | INT, FK | 所属章节ID |
| title | VARCHAR | 任务标题 |
| ai_enabled | BOOLEAN | 是否启用AI交互 |
| task_type | ENUM | 类型 |
| config | JSON | 配置项 |
assignments
教师布置的作业实例,面向班级。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 作业ID |
| course_id | INT, FK | 课程ID |
| task_id | INT, FK | 来源任务ID |
| class_id | INT, FK | 指定班级ID |
| deadline | DATETIME | 截止时间 |
assignment_submissions
学生提交的作业记录,含评分信息。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 提交ID |
| assignment_id | INT, FK | 作业ID |
| user_id | INT, FK | 学生ID |
| answer_text | TEXT | 提交内容 |
| score | FLOAT | 得分 |
| submitted_at | DATETIME | 提交时间 |
ai_sessions
AI 互动会话日志,保存 prompt 与输出等。 图片、视频(链接)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 会话ID |
| user_id | INT, FK | 用户ID |
| task_id | INT, FK | 来源任务ID |
| prompt | TEXT | 用户输入内容 |
| response | TEXT | AI输出内容 |
| media_type | ENUM | 类型 |
| created_at | DATETIME | 交互时间 |
tokens
用户余额表,记录剩余计费 Tokens。 低于某个余额是否预警字段 过期日期 真实金额的转换?
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | ID |
| user_id | INT, FK | 用户ID |
| balance | FLOAT | 当前Token余额 |
| updated_at | DATETIME | 更新时间 |
token_logs
扣费/充值流水表。 文本/有确切返回的按具体模型返回具体的tokens(usage) 图片按张、视频音频按条(tokens转换消耗标准?) 具体请求的厂家、模型信息(学校不可见字段/或单独做表、待设计数据库结构)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT, PK | 日志ID |
| user_id | INT, FK | 用户ID |
| task_id/assi_id | ||
| amount | FLOAT | 金额 |
| reason | VARCHAR | 原因 |
| created_at | DATETIME | 时间 |
3. 外键关系表
| 子表 | 父表 | 外键字段 |
|---|---|---|
| users | schools | school_id |
| users | users | parent_user_id |
| classes | schools | school_id |
| classes | users | teacher_id |
| class_members | classes | class_id |
| class_members | users | user_id |
| courses | users | teacher_id |
| course_enrollments | courses | course_id |
| course_enrollments | users | user_id |
| lessons | courses | course_id |
| tasks | lessons | lesson_id |
| assignments | courses | course_id |
| assignments | tasks | task_id |
| assignments | classes | class_id |
| assignment_submissions | assignments | assignment_id |
| assignment_submissions | users | user_id |
| ai_sessions | users | user_id |
| ai_sessions | tasks | task_id |
| tokens | users | user_id |
| token_logs | users | user_id |