关系Oracle数据库中多对多关系实现方法(oracle多对多)

如果要在Oracle数据库中实现多对多的关系,我们可以使用三表结构来实现。第一张表存储主体(比如学生),第二张表存储第二主体(比如课程),第三张表存储两个实体(学生和课程)之间的关系(例如学生选修的课程列表)。

建立第一张表,存储学生的信息:

CREATE TABLE STUDENT

STUDENT_ID INTEGER PRIMARY KEY,
STUDENT_NAME VARCHAR2(50) NOT NULL,
STUDENT_DOB DATE NOT NULL

建立第二张表,存储课程的信息:

CREATE TABLE COURSE

COURSE_ID INTEGER PRIMARY KEY,
COURSE_NAME VARCHAR2(50) NOT NULL,
COURSE_TEACHER VARCHAR2(50) NOT NULL

现在,我们将创建一张表来表达学生-课程之间的多对多关系:

CREATE TABLE STUDENT_COURSE

STUDENT_ID INTEGER NOT NULL,
COURSE_ID INTEGER NOT NULL,
PRIMARY KEY(STUDENT_ID,COURSE_ID),
FOREIGN KEY(STUDENT_ID)REFERENCES STUDENT(STUDENT_ID),
FOREIGN KEY(COURSE_ID)REFERENCES COURSE(COURSE_ID)

这时,它是一条多对多的关系的表, 学生可以报名多个课程, 同一课程也可以被多个学生选报。为了表达多对多关系,我们需要建立一张中间表。

以上就是 Oracle数据库中多对多关系实现的方法。多对多关系是一种SQL语句不支持的关系,因此需要建立中间表,在中间表中存储关联唯一性的实体主键,并将其用作外键来实现关联关系。


数据运维技术 » 关系Oracle数据库中多对多关系实现方法(oracle多对多)