MySQLのテーブル間の1対多のリレーションシップを作成の方法

MySQLでは、次のように外部キーを使って多対一の関係を構築できます。

  1. 「多」側のテーブルに「一」側のテーブルへの外部キー列を作成します。例えば、学校テーブルと学生テーブルの2つのテーブルがあるとします。学生テーブルが多側で、学校テーブルが一側です。学生テーブルに外部キー列を作成して、学校テーブルのプライマリキーを参照させます。
CREATE TABLE 学生表 (
    学生ID INT PRIMARY KEY,
    姓名 VARCHAR(50),
    学校ID INT,
    FOREIGN KEY (学校ID) REFERENCES 学校表(学校ID)
);
  1. 「一」方の表にプライマリキー列を作成します
CREATE TABLE 学校表 (
    学校ID INT PRIMARY KEY,
    学校名称 VARCHAR(50)
);
  1. データを挿入する場合は、多方のテーブルの外部キーの値が一方のテーブルの主キーに存在することを確認します。
INSERT INTO 学校表 (学校ID, 学校名称) VALUES (1, '学校A');
INSERT INTO 学校表 (学校ID, 学校名称) VALUES (2, '学校B');

INSERT INTO 学生表 (学生ID, 姓名, 学校ID) VALUES (1, '学生A', 1);
INSERT INTO 学生表 (学生ID, 姓名, 学校ID) VALUES (2, '学生B', 1);
INSERT INTO 学生表 (学生ID, 姓名, 学校ID) VALUES (3, '学生C', 2);

上の例では、学生テーブルの学校ID列は外部キーで、学校テーブルの学校ID列を参照しています。これにより学校テーブルと学生テーブルの1対多の関係性が成立します。各生徒は1つの学校に関連づけられていますが、1つの学校には複数の生徒が関連づけられてもいます。

bannerAds