Skip to content

数据库设计说明书v1.1

模多多教育版 数据库设计说明书 版本:V1.0 日期:2025-07-26

1. 实体关系图 (ERD)

下图展示核心实体及其关系:

2. 表结构说明

schools

记录学校维度信息,支持多校区部署场景。

字段名类型说明
idINT, PK学校ID
nameVARCHAR学校名称
regionVARCHAR所属地区
created_atDATETIME创建时间

users

系统账号表,支持学生、教师、学校管理员和平台管理员角色。 学生(我们设置的学号【唯一标识符-账号】、姓名【必填-映射密码】、年龄、性别、年级班级【外键关联表】)上传excel表信息录入 教师(id、密码【自定义】、上级学校账号、年级班级【外键关联表】) 学校账号(id、密码【自定义】、学校名称) 平台管理员账号(id、账号(admin)、密码(9Zhangzhiguang))

字段名类型说明
idINT, PK用户ID
usernameVARCHAR登录用户名
password_hashVARCHAR密码哈希
roleENUM账号角色
school_idINT, FK所属学校ID
parent_user_idINT, FK上级账号
real_nameVARCHAR真实姓名
created_atDATETIME创建时间

classes

教学班级表,一对多关联学校、教师。

字段名类型说明
idINT, PK班级ID
school_idINT, FK所属学校
nameVARCHAR班级名称(几年几班)
teacher_idINT, FK教师ID
edu_yearDATETIME学年

class_members

班级成员映射表,用于学生与班级多对多关系。

字段名类型说明
idINT, PKID
class_idINT, FK班级ID
user_idINT, FK学生ID
joined_atDATETIME加入时间

courses (默认课件字段、公开/非公开字段)

课程主表,包含课程元数据和章节结构 JSON。

字段名类型说明
idINT, PK课程ID
titleVARCHAR课程标题
descriptionTEXT简介
teacher_idINT, FK发布教师
syllabus_jsonJSON教学大纲(章节结构)
created_atDATETIME创建时间

course_enrollments

教师控制选择学生加入哪些课程与进度跟踪表。

字段名类型说明
idINT, PK记录ID
course_idINT, FK课程ID
user_idINT, FK学生ID
progressFLOAT学习进度百分比
enrolled_atDATETIME选课时间

lessons

课程下的课件/章节信息。

字段名类型说明
idINT, PK章节ID
course_idINT, FK所属课程ID
titleVARCHAR章节标题
content_urlVARCHAR教学内容链接
sort_orderINT排序编号

tasks

章节内的学习任务,含 AI 互动配置。

字段名类型说明
idINT, PK任务ID
lesson_idINT, FK所属章节ID
titleVARCHAR任务标题
ai_enabledBOOLEAN是否启用AI交互
task_typeENUM类型
configJSON配置项

assignments

教师布置的作业实例,面向班级。

字段名类型说明
idINT, PK作业ID
course_idINT, FK课程ID
task_idINT, FK来源任务ID
class_idINT, FK指定班级ID
deadlineDATETIME截止时间

assignment_submissions

学生提交的作业记录,含评分信息。

字段名类型说明
idINT, PK提交ID
assignment_idINT, FK作业ID
user_idINT, FK学生ID
answer_textTEXT提交内容
scoreFLOAT得分
submitted_atDATETIME提交时间

ai_sessions

AI 互动会话日志,保存 prompt 与输出等。 图片、视频(链接)

字段名类型说明
idINT, PK会话ID
user_idINT, FK用户ID
task_idINT, FK来源任务ID
promptTEXT用户输入内容
responseTEXTAI输出内容
media_typeENUM类型
created_atDATETIME交互时间

tokens

用户余额表,记录剩余计费 Tokens。 低于某个余额是否预警字段 过期日期 真实金额的转换?

字段名类型说明
idINT, PKID
user_idINT, FK用户ID
balanceFLOAT当前Token余额
updated_atDATETIME更新时间

token_logs

扣费/充值流水表。 文本/有确切返回的按具体模型返回具体的tokens(usage) 图片按张、视频音频按条(tokens转换消耗标准?) 具体请求的厂家、模型信息(学校不可见字段/或单独做表、待设计数据库结构)

字段名类型说明
idINT, PK日志ID
user_idINT, FK用户ID
task_id/assi_id
amountFLOAT金额
reasonVARCHAR原因
created_atDATETIME时间

3. 外键关系表

子表父表外键字段
usersschoolsschool_id
usersusersparent_user_id
classesschoolsschool_id
classesusersteacher_id
class_membersclassesclass_id
class_membersusersuser_id
coursesusersteacher_id
course_enrollmentscoursescourse_id
course_enrollmentsusersuser_id
lessonscoursescourse_id
taskslessonslesson_id
assignmentscoursescourse_id
assignmentstaskstask_id
assignmentsclassesclass_id
assignment_submissionsassignmentsassignment_id
assignment_submissionsusersuser_id
ai_sessionsusersuser_id
ai_sessionstaskstask_id
tokensusersuser_id
token_logsusersuser_id