多対多 (データモデル)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Superveryhothot (会話 | 投稿記録) による 2021年1月3日 (日) 08:58個人設定で未設定ならUTC)時点の版であり、現在の版とは大きく異なる場合があります。

著者は複数の本を書くことができ、本は複数の著者が書くことができる
ジャンクションテーブルとの1対多の関係のペアとしての著者と本の多対多の関係

システム解析では、多対多 (: many-to-many) の関係は、2つの実体[1] AとBの間の関係を指すカーディナリティの一種であり、AにはBに多くのが存在するインスタンスが含まれる場合があり、その逆も同様である。

たとえば、Aを著者、Bを本と考えてみよう。著者は複数の本を書き、本は複数の著者によって書かれる。

リレーショナルデータベース管理システムでは、このような関係は通常、連想テーブル(もしくは結合テーブル、ジャンクションテーブル、相互参照テーブル)の方法で実装される。つまり、たとえば AB は2つの1対多の関係A-> ABとB-> ABを通して実装される。この場合、ABの論理主キーは、2つの外部キー(つまり、AとBの主キーのコピー)から形成される。

CakePHPRuby on RailsなどのWebアプリケーションフレームワークでは、論理モデルデータベーステーブルによって表されるエンティティタイプ間の多対多の関係は、HasAndBelongsToMany(HABTM)リレーションシップと呼ばれることがある[2]

関連項目

脚注

  1. ^ 実体関連モデルを参照すること。
  2. ^ 3.7.6.5 hasAndBelongsToMany (HABTM) Archived 2012-08-15 at the Wayback Machine.. Cakephp.org