使用sql语句按照范式法则设计学员选课系统 ,建立相关的数据表(student表,mark表,course表,teacher表)
时间: 2024-06-10 20:10:12 浏览: 80
根据范式法则,我们需要将数据表分解成更小的关系,避免数据冗余和数据不一致性。因此,我们可以设计以下四个数据表:
1. student表(学生表)
| 字段名 | 数据类型 | 主键 | 外键 | 备注 |
| ----------- | ---------- | ---- | ---- | ---------------- |
| student_id | int | 是 | | 学生ID |
| student_name| varchar(20)| | | 学生姓名 |
| gender | varchar(2) | | | 学生性别 |
| birthday | date | | | 学生生日 |
| enroll_date | date | | | 学生入学日期 |
| major | varchar(20)| | | 学生专业 |
| class | varchar(20)| | | 学生班级 |
2. course表(课程表)
| 字段名 | 数据类型 | 主键 | 外键 | 备注 |
| ----------- | ---------- | ---- | ---- | ---------------- |
| course_id | int | 是 | | 课程ID |
| course_name | varchar(20)| | | 课程名称 |
| credit | int | | | 课程学分 |
| teacher_id | int | | 是 | 课程教师ID |
3. teacher表(教师表)
| 字段名 | 数据类型 | 主键 | 外键 | 备注 |
| ----------- | ---------- | ---- | ---- | ---------------- |
| teacher_id | int | 是 | | 教师ID |
| teacher_name| varchar(20)| | | 教师姓名 |
| gender | varchar(2) | | | 教师性别 |
| birthday | date | | | 教师生日 |
| hire_date | date | | | 教师入职日期 |
| title | varchar(20)| | | 教师职称 |
4. mark表(成绩表)
| 字段名 | 数据类型 | 主键 | 外键 | 备注 |
| ----------- | ---------- | ---- | ---- | ---------------- |
| mark_id | int | 是 | | 成绩ID |
| student_id | int | | 是 | 学生ID |
| course_id | int | | 是 | 课程ID |
| mark | int | | | 学生成绩 |
其中,外键关联如下:
- course表的teacher_id关联teacher表的teacher_id
- mark表的student_id关联student表的student_id
- mark表的course_id关联course表的course_id
以上是基本的数据表设计,具体业务需求还需要根据实际情况进行调整。
阅读全文