[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

外部キー (foreign key)

pointこの用語のポイント

pointデータベースのキーだよ

point「ここの値は好きに入れちゃ駄目!こっちから選んで入れなさい」な制約のある項目だよ

スポンサーリンク

簡単に書くよ

外部キー (foreign key)とは

データベースの「ここの値は好きに入れちゃ駄目!こっちから選んで入れなさい」な制約のこと
です。

image piyo

詳しく書くよ

例えばある学校のあるクラスに以下のクラス名簿があったとします。

[出席番号、名前、性別、血液型]
男子1番、相川、男、O型
男子2番、合田、男、B型
男子3番、伊藤、男、A型
男子4番、宇野、男、O型
  ・
  ・
  ・

のような表です。

担任の先生は始業式の日に日直予定も1年分決めてしまいました。
きっちりした先生ですね。

[日付、日直の出席番号]
4/1、男子1番
4/2、女子1番
4/3、男子2番
  ・
  ・
  ・

のような表が出来あがりました。

このとき「日直の出席番号」は必ずクラス名簿の「出席番号」に載っている人になります。
当たり前ですよね?
他のクラスの人や部外者に日直をやらせるわけにはいきませんから。

さて、日直も決まってめでたしめでたし……と思っていたら生徒たちからブーイングが出ました。
「日直くらい自分たちで決めさせろー!」と暴動が起こったのです。

仕方ないので日直予定は一旦白紙になりました。

[日付、日直の出席番号]
4/1、
4/2、
4/3、
  ・
  ・
  ・

な状態です。

そして生徒たちに好きに決めさせた結果が、こちらφ(--)

[日付、日直の出席番号]
4/1、男装女子100番
4/2、せんせー
4/3、やらなくていーんじゃね?
  ・
  ・
  ・

あらら、皆さん好き放題書いていますね。
ここで先生がキレました。

このガキンチョども!
日直の出席番号はクラス名簿の出席番号から選んで書け!!

このときの「日直の出席番号はクラス名簿の出席番号から選んで書け!!」な制約が「外部キー」です。

一般的には、依存関係にある2つの表を結びつけるときに付与します。
別に無くても良いっちゃ良い制約ですが、間違い防止と性能面でのうんちゃらで付与することが多いみたいです。
でも外部キー設定するとテーブル構造変わったときに面倒臭くてぶちぶち。

image piyo2

一言でまとめるよ

まぁ「外部キー」って単語が出てきたら「『ここの値はこっちから選んで入れなさい』制約なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク