www.wanichan.com

主キーと外部キーの違い

リレーションシップとキーを管理する
最終更新日時:2018/10/01 10:03:40
  • このエントリーをはてなブックマークに追加

Microsoft Accessはリレーショナルデータベースソフトです。複数のテーブルに共通のキーを持たせて、そのキーでテーブル同士をつなぐことをリレーションシップといいます。 この記事では、リレーションシップの設定に必要な主キー、および、外部キーとの関係について説明します。

はじめに

Microsoft Accessはリレーショナルデータベースソフトです。複数のテーブルに共通のキーを持たせて、そのキーでテーブル同士をつなぐことをリレーションシップといいます。

たとえば、みんなで共同で売上データを入力していくとします。すると、以下のように同じ人なのにデータが重複してしまったり、同じ商品なのに入力の違いによって矛盾が生じたりしませんか?

顧客名商品名単価 数量
安部 光男わにちゃんシャンプー 7001
石田 純一 ワニちゃんシャンプー7002
安部光男わにちゃんシャンプー700 1
岡本 太郎わにちゃんリンス 7201

データの重複や矛盾が起こらないように、なるべく種類別、部門別に小さなテーブルを分けて、テーブルとテーブルを関連付ける(リレーション)ことによって、効率よくデータベースの管理が行えます。

主キーと外部キーの違い

テーブルには、主キーと外部キーが存在します。

主キー
データの重複を防ぐためのもの。他のテーブルに参照されるキーにもなります。
外部キー
他のテーブルの主キーを参照するキー。この外部キーを使うと何度も同じ情報を入力する手間が省けます。
ポイントヒント設定
どんなデータが入るの?このフィールドは日付型? 郵便番号?・・・電話番号?・・・それとも金額?などなどフィールド名・データ型・フィールドプロパティ
データはダブらない?同様のデータを何度も何度も入力する必要がないようにしなきゃいけないですよね? 
他のテーブルと関連付けるの?
もしするとしたらどのフィールド?
共通のフィールドを持たないと関連付けられない主キー(参照されるキー)
外部キー(参照するキー)
(共通となるフィールド)
顧客マスター
顧客ID(主キー)
顧客名
住所
電話番号
売上テーブル
売上ID(主キー)
顧客ID(外部キー)
商品ID(外部キー)
数量
商品マスター
商品ID(主キー)
商品名
単価

また、テーブルの設計において、日々変化が少ないテーブル(顧客マスターや商品マスターなど)なのか、それとも日々変化するテーブルなのか(売り上げ・仕入れ・在庫などのデータの集まりでダブリもありえる)も把握しておかなければいけません。

前者は「静的テーブル」、後者は「動的テーブル」となります。

スポンサーリンク
INDEX
  • このエントリーをはてなブックマークに追加

コメント

▲このページのトップへ