数据模型 #
这一页描述当前 Phase 1 已经落地的核心实体关系,后续功能都建立在这套模型之上。
核心实体 #
- User: 用户账户与登录身份,包含用户名、邮箱、密码哈希和角色
- Course: 课程容器,由教师创建并作为教学主线
- CourseMember: 课程成员关系,记录用户和课程之间的绑定以及成员角色
- Experiment: 实验任务,隶属于某一门课程
- Submission: 实验提交记录,记录学生每次提交的文件、时间和评估信息
关系约束 #
- 一个 User 可以创建多个 Course
- 一个 Course 只有一个负责人教师,但可以有多个成员
- 一个 User 可以加入多个 Course
- 一个 Course 下面可以有多个 Experiment
- 一个 Experiment 可以有多个 Submission
- 一个 User 对同一个 Experiment 可以提交多次,最新提交通过
latest标记
约束原则 #
- 课程成员关系必须通过中间表表达,不直接把学生列表冗余到课程表里
- 提交记录必须保留历史,不能只存最后一次结果
- 文件路径与数据库记录必须一致,避免提交丢失后无法追踪
- 角色权限逻辑必须由后端统一控制,避免散落在页面或服务里