web-dev-qa-db-ja.com

ER図で外部キーを表す方法は?

'Customer ID'(外部キー)という列を持つ 'Transactions'テーブルと 'ID'(主キー)を持つCustomerテーブルがあるとします。 2つのテーブル間の関係を示し、「顧客ID」が「顧客」テーブルの主キーである「トランザクション」テーブルの外部キーであることを示すにはどうすればよいですか?

私はこの質問をグーグルで検索し、このフォーラムで自分のクエリをチェックしましたが、私の質問に対処する図で正確な例を見つけることができませんでした。

できれば図で説明してください。

7
MK Singh

ER図は元々、ERモデルを表すためにのみ使用されていました。 ERモデルは、関係を表すために外部キーを使用しません。ボックス間の線を使用します。線には、両端または両端にカーディナリティのある種のインジケーターがあります。時々、関係はひし形で個別に示されます。

今日では、ER図の半分以上が実際にリレーショナルモデルの図であり、ERモデルではありません。リレーショナルモデルにはテーブルに含まれる外部キーがあり、これらはERモデルが識別する関係を実装するのに役立ちます。また、リレーショナルモデルには、多対多の関係でリンクされている2つのエンティティテーブル間の「ジャンクションテーブル」と呼ばれる追加のテーブルがあります。このジャンクションテーブルには、2つ以上の外部キーが含まれています。

リレーショナルモデルを表す方法はたくさんあります。おそらく最も単純なのは、MS Accessが完成したデータベースから作成できる「関係図」です。データベースビルダーが外部キーを識別した場合、これはかなり完全になります。

大規模な図を作成するために、MS Accessよりも高度なツールが多数あります。これらのいくつかは、データベースを構築する前に使用されます。一部は後に使用されます。

9
Walter Mitty

enter image description here

私はこの形式を好み、「カラスの足」を使用して多対1の結合を示します

1
dlink

ERダイアグラムを描画するとき、私は次のグラフィカルな規則を使用しました:次のように、リレーションシップラインに外部キー列名でラベルを付けます。

Example ERD

これにより、子テーブルのどの列が親テーブルへの外部キーであるかが明確になります。主キーのステータスを示すには、問題の属性に下線を引きます。

これよりも便利なのは、テーブルの主キーが何であるか(規則で代理キーを使用する場合に簡単に実行できる)と外部キー列が何であるかを明確にする命名規則です。

一部のリレーショナルモデル図には、列のリストの列名の左側にキー参加ラベルも含まれています(「PK」、「FK1」、「FK2」など)。これは、特に複合キーがある場合に役立ちます。

0
Joel Brown