MySQL における多対多関係の設定方法

MySQLで多対多の関係を確立するには、中間テーブルを作成します。中間テーブルには、それぞれ2つの関連するテーブルを参照する2つの外部キーがあります。具体的な例を以下に示します。

生徒テーブル(students)と科目テーブル(courses)があり、1人の生徒は複数の科目を、1つの科目は複数の生徒が選択できる場合、中間テーブル(student_courses)を作成し、生徒IDと科目IDを持たせることで多対多の関係を構築できます。

  1. 生徒テーブルの作成:
CREATE TABLE students (
  student_id INT PRIMARY KEY AUTO_INCREMENT,
  student_name VARCHAR(50)
);
  1. カリキュラムを作成する
CREATE TABLE courses (
  course_id INT PRIMARY KEY AUTO_INCREMENT,
  course_name VARCHAR(50)
);
  1. 中間テーブルを作成します。
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制約により、各生徒と科目の組み合わせを一意に保ち、FOREIGN KEY制約により、中間テーブル内の外部キーは対応するテーブルの主キーを参照しています。

上記のステップにより、学生テーブル、コーステーブル、中間テーブルが正常に作成され、多対多のリレーションが実現されました。学生とコースの関連付けを表すデータは、中間テーブルに挿入することができます。

bannerAds