現実世界に存在するエンティティを、ER図として記述しようとすると、「多対多」の関係を持ったエンティティができることがある。
例)

・1人の学生は、複数の講義に出席できる。
・1つの講義には複数の学生が参加できる。
・「多対多」の関連が成立している
「多対多」の問題
・両者のエンティティが共通となるキー列がないため、両エンティティを結合できない。
・もし無理矢理に関連づけるなら、「学生」テーブルに「講義コード」列を持つようにする
→しかし、それだと「学生」テーブルに、1人の学生が複数行含まれるようになってしまう。
→講義を未登録の学生は、「学生」テーブルにも登録できなくなってしまう。
・「講義」テーブルに「学生コード」列を追加したとしても同じ問題が発生する。
関連実体(associative entity)
「多対多」の問題を解決するための方法

・「受講」エンティティは「学生」エンティティと「講義」エンティティの主キーを組み合わせたキーを主キーに持つ
・すると、学生と受講の間の関連は「1対多」になる
・講義と受講の間の関連も「1対多」になる
参考: