在MySQL中建立多對(duì)多關(guān)系可以通過(guò)創(chuàng)建中間表來(lái)實(shí)現(xiàn)。中間表中包含兩個(gè)外鍵,分別指向兩個(gè)相關(guān)聯(lián)的表。以下是一個(gè)具體的示例:
假設(shè)有兩個(gè)表:學(xué)生表(students)和課程表(courses),一個(gè)學(xué)生可以選擇多門課程,一門課程也可以被多個(gè)學(xué)生選擇。要建立多對(duì)多關(guān)系,需要?jiǎng)?chuàng)建一個(gè)中間表(student_courses),其中包含學(xué)生的ID和課程的ID。
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(50)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY AUTO_INCREMENT,
course_name VARCHAR(50)
);
CREATE TABLE student_courses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
在中間表中,PRIMARY KEY約束確保了每個(gè)學(xué)生和課程的組合是唯一的,F(xiàn)OREIGN KEY約束確保了中間表中的外鍵引用了對(duì)應(yīng)表的主鍵。
通過(guò)上述步驟,就成功建立了學(xué)生表、課程表和中間表,實(shí)現(xiàn)了多對(duì)多關(guān)系。可以向中間表中插入數(shù)據(jù)來(lái)表示學(xué)生和課程的關(guān)聯(lián)關(guān)系。