课外兴趣班管理系统mysql代码
时间: 2023-07-29 19:08:30 浏览: 52
以下是一个简单的课外兴趣班管理系统的 MySQL 代码,包括了课程、学生和教师的信息表以及关联表:
```sql
CREATE TABLE course (
course_id INT NOT NULL AUTO_INCREMENT,
course_name VARCHAR(50) NOT NULL,
course_desc VARCHAR(255),
PRIMARY KEY (course_id)
);
CREATE TABLE student (
student_id INT NOT NULL AUTO_INCREMENT,
student_name VARCHAR(50) NOT NULL,
student_age INT,
PRIMARY KEY (student_id)
);
CREATE TABLE teacher (
teacher_id INT NOT NULL AUTO_INCREMENT,
teacher_name VARCHAR(50) NOT NULL,
teacher_age INT,
PRIMARY KEY (teacher_id)
);
CREATE TABLE course_student (
course_id INT NOT NULL,
student_id INT NOT NULL,
PRIMARY KEY (course_id, student_id),
FOREIGN KEY (course_id) REFERENCES course(course_id) ON DELETE CASCADE,
FOREIGN KEY (student_id) REFERENCES student(student_id) ON DELETE CASCADE
);
CREATE TABLE course_teacher (
course_id INT NOT NULL,
teacher_id INT NOT NULL,
PRIMARY KEY (course_id, teacher_id),
FOREIGN KEY (course_id) REFERENCES course(course_id) ON DELETE CASCADE,
FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id) ON DELETE CASCADE
);
```
以上代码创建了 4 个表:
- course 表:存储课程信息,包括课程 ID、课程名称和课程描述。
- student 表:存储学生信息,包括学生 ID、学生姓名和学生年龄。
- teacher 表:存储教师信息,包括教师 ID、教师姓名和教师年龄。
- course_student 表:存储课程和学生的关联信息,包括课程 ID 和学生 ID。
- course_teacher 表:存储课程和教师的关联信息,包括课程 ID 和教师 ID。
其中,course_student 和 course_teacher 表都使用了联合主键,即同时使用了 course_id 和 student_id(或 teacher_id)来唯一标识一条记录,这是因为一个课程可以有多个学生或教师,而一个学生或教师也可以参加多个课程。
此外,course_student 和 course_teacher 表都使用了外键来关联到 course 和 student(或 teacher)表,这是为了确保关联信息的完整性和一致性。使用 ON DELETE CASCADE 表示在删除主表记录时同时删除关联表中的相关记录。