列举一个持久类间的多对多关联,并设计存储它们的数据库表
时间: 2024-03-24 16:35:50 浏览: 57
一个典型的持久类间的多对多关联是学生和课程之间的关系。一个学生可以注册多门课程,而一门课程也可以有多名学生注册。为了存储这种关系,我们需要设计三个数据库表:学生表(students)、课程表(courses)和注册表(registrations)。
学生表包含学生的基本信息,如学号、姓名、年龄等。课程表包含课程的基本信息,如课程号、课程名称、教师等。注册表则记录了学生和课程之间的关系,包含学生ID、课程ID以及注册时间等信息。
下面是三个表的详细设计:
```
-- 学生表
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL,
-- 其他字段
);
-- 课程表
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
teacher VARCHAR(50) NOT NULL,
-- 其他字段
);
-- 注册表
CREATE TABLE registrations (
student_id INT NOT NULL,
course_id INT NOT NULL,
registered_at DATETIME NOT NULL,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
```
在注册表中,我们使用了复合主键(student_id 和 course_id)来保证每个学生只能注册一次同一门课程。同时,我们还为这两个字段分别添加了外键约束,以保证数据的完整性。
阅读全文