目录
1引言
1.1编写目的
本文档旨在详细描述用户表、课程表、课程评价表、错题记录表和证书表的数据库设计。它为数据库开发人员、项目管理人员和最终用户提供了数据库结构的详细视图。
1.2术语
主键(PRIMARY KEY):表中用来唯一标识每条记录的字段。
外键(FOREIGN KEY):表中用来与另一个表的主键建立链接的字段。
自增(AUTO_INCREMENT):字段的值在插入新记录时自动增加。
1.3预期读者与阅读建议
预期读者 | 阅读重点 |
数据库开发人员 | 应重点阅读数据表结构和关系部分。 |
项目管理人员 | 应关注整体数据库设计和术语部分。 |
项目开发人员 | 应关注整体数据库设计部分。 |
项目测试人员 | 应关注整体数据库设计和数据表结构和关系部分。 |
最终用户 | 建议阅读引言和术语部分,以便更好地理解系统的数据库结构。 |
1.4参考资料
《ClassCloud学习平台_软件需求说明书》(项目内部文件);
《ClassCloud学习平台_可行性研究报告》(项目内部文件);
《MySQL官方文档》(https://dev.mysql.com);
《数据库设计说明书的编写》(CSDN);
《GDPR 通用数据保护条例指南》(欧盟官方网站);
2设计数据表结构
2.1用户表:users
名称 | 代码 | 注释 | 数据类型 | 主键 | 约束 | 备注 |
用户的唯一标识符 | ID | varchar(64) | 是 | 自动增长的整数 | ||
登录名 | Username | varchar(64) | ||||
登录密码 | Password | varchar(64) | ||||
用户角色 | Role | varchar(100) |
2.2课程表:courses
名称 | 代码 | 注释 | 数据类型 | 主键 | 约束 | 备注 |
课程的唯一标识符 | ID | 唯一 | varchar(64) | 是 | 唯一 | 自动增长的整数 |
课程名称 | Name | varchar(255) | ||||
课程描述 | Description | varchar(255) | ||||
授课教师ID | Teacher_id | varchar(64) | 外键 | 与用户表的ID字段建立外键关系 |
2.3课程评价表:courses_reviews
名称 | 代码 | 注释 | 数据类型 | 主键 | 约束 | 备注 |
评价的唯一标识符 | ID | varchar(64) | 是 | 自动增长的整数;复合主键 | ||
评价用户的ID | User_id | varchar(64) | 外键 | 与用户表的ID字段建立外键关系。 | ||
被评价课程的ID | Course_id | varchar(64) | 外键 | 与课程表的ID字段建立外键关系 | ||
评价分数 | Rating | varchar(64) | ||||
评价文本内容 | Comment | varchar(255) |
2.4错题记录表:mistakes
名称 | 代码 | 注释 | 数据类型 | 主键 | 约束 | 备注 |
错题记录的唯一标识符 | ID | 唯一 | varchar(64) | 是 | 唯一 | 自动增长的整数 |
记录错题的用户ID | User_id | varchar(64) | 外键 | 与用户表的ID字段建立外键关系 | ||
错题问题 | Question | varchar(255) | ||||
错题答案 | Answer | varchar(255) |
2.5证书表:certificates
名称 | 代码 | 注释 | 数据类型 | 主键 | 约束 | 备注 |
证书记录的唯一标识符 | ID | 唯一 | varchar(64) | 是 | 唯一 | 自动增长的整数 |
获得证书的用户ID | User_id | varchar(64) | 外键 | 与用户表的ID字段建立外键关系 | ||
证书对应的课程ID | Course_id | varchar(64) | 外键 | 与课程表的ID字段建立外键关系 | ||
证书URL链接 | Certificate_url | varchar(255) | 唯一 |
这些表之间的关系如下:
(1)users 表是核心,其他表通过外键与它关联。
(2)courses 表通过 teacher_id 与 users 表关联,表示教师与课程的关系。
(3)course_reviews 表通过 user_id 和 course_id 分别与 users 和 courses 表关联,表示评价由特定用户针对特定课程。
(4)mistakes 表通过 user_id 与 users 表关联,表示错题记录属于特定用户。
(5)certificates 表通过 user_id 和 course_id 分别与 users 和 courses 表关联,表示证书颁发给学习特定课程的特定用户。