用mysqlworkbench基于学生选课系统设计数据库不少于八张表满足第三范式MySQL语言实现
时间: 2023-12-17 20:02:52 浏览: 90
Access数据库课程设计-学生选课系统
5星 · 资源好评率100%
好的,我知道你的问题了。首先,为了满足第三范式,我们需要将数据分解成多个表,每个表都应该有一个主键,并且每个字段应该只与主键有关。在这个学生选课系统中,我们可以设计以下八张表:
1. 学生表(Student):包含学生的信息,如学生ID、姓名、性别、年龄等。其中,学生ID是主键。
2. 课程表(Course):包含课程的信息,如课程ID、课程名称、授课教师等。其中,课程ID是主键。
3. 教师表(Teacher):包含教师的信息,如教师ID、姓名、性别、年龄、联系方式等。其中,教师ID是主键。
4. 选课表(Selection):记录每个学生选的课程,包括学生ID、课程ID、选课时间等。其中,学生ID和课程ID组合起来是主键。
5. 成绩表(Score):记录每个学生在每门课程中的成绩,包括学生ID、课程ID、成绩等。其中,学生ID和课程ID组合起来是主键。
6. 班级表(Class):记录每个班级的信息,如班级ID、班级名称、所属院系等。其中,班级ID是主键。
7. 院系表(Department):记录每个院系的信息,如院系ID、院系名称等。其中,院系ID是主键。
8. 教师授课表(Teach):记录每个教师所授课程,包括教师ID、课程ID、上课时间、上课地点等。其中,教师ID和课程ID组合起来是主键。
以上八张表都满足第三范式,每个表都有一个主键,并且每个字段只与主键有关。下面是用MySQL语言实现的代码:
```
CREATE TABLE Student (
student_id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
age INT
);
CREATE TABLE Course (
course_id INT PRIMARY KEY,
name VARCHAR(50),
teacher_id INT,
FOREIGN KEY (teacher_id) REFERENCES Teacher(teacher_id)
);
CREATE TABLE Teacher (
teacher_id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
age INT,
contact VARCHAR(50)
);
CREATE TABLE Selection (
student_id INT,
course_id INT,
selection_time DATETIME,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES Student(student_id),
FOREIGN KEY (course_id) REFERENCES Course(course_id)
);
CREATE TABLE Score (
student_id INT,
course_id INT,
score INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES Student(student_id),
FOREIGN KEY (course_id) REFERENCES Course(course_id)
);
CREATE TABLE Class (
class_id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT,
FOREIGN KEY (department_id) REFERENCES Department(department_id)
);
CREATE TABLE Department (
department_id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE Teach (
teacher_id INT,
course_id INT,
time VARCHAR(50),
location VARCHAR(50),
PRIMARY KEY (teacher_id, course_id),
FOREIGN KEY (teacher_id) REFERENCES Teacher(teacher_id),
FOREIGN KEY (course_id) REFERENCES Course(course_id)
);
```
以上是基于学生选课系统设计的数据库,包含八张表,每个表都满足第三范式,并使用MySQL语言实现。
阅读全文