多対多の関連 | 応用情報技術者試験
多対多の関連とは
多対多の関連とは、データベース設計において、テーブルAの1つのデータに対してテーブルBの複数のデータが対応し、同時にテーブルBの1つのデータに対してもテーブルAの複数のデータが対応するような関係性のことです。
リレーショナルデータベースでは、「多対多」の関係を直接テーブル同士で繋ぐことができません。もし直接繋ごうとすると、データが重複したり、検索が著しく困難になったりします。そのため、多対多の関連を表現する際は、その間に「中間テーブル(連関エンティティ)」と呼ばれる中継用のテーブルを1つ挟み、「1対多」の関係が2つ組み合わさった形に変換して設計します。
具体例
「学生」と「授業」の関係を考えします。1人の学生は「英語」「数学」など「複数(多)」の授業を履修します。同時に、1つの授業には「Aさん」「Bさん」など「複数(多)」の学生が参加するため、これは多対多の関係です。データベースでは「履修登録テーブル」という中間テーブルを用意し、そこに「学生ID」と「授業ID」のペアを保存していくことで、誰が何の授業を受けているかを綺麗に整理できます。
もう少し詳しく