🐙

主キーと外部キー

2023/11/01に公開

PF作成にあたりER図を作成し初めて認識が足りなかったので改めて振り返ろうと思います。

主キーと外部キー

主キーとは(Primary Key、略:PK)

データベースのデータを一意に識別するための項目のことを主キーという。
上記のER図にある会員テーブルにおいて、このテーブルの主キーは会員IDになるため会員IDがわかればデータを一意に識別することができます。

会員ID ユーザー名 メールアドレス
1 山田太郎 yamada@taro
2 山田花子 yamada@hanako

例えば上記のようなテーブルでは会員IDが主キーとなっているため同じ会員IDを持つ会員は登録することができません。(一意制約)

主キーの条件

主キーは行を特定するための鍵になります。主キーの条件は

  • 表の中で内容が重複しないこと
  • 内容が空でないこと

外部キーとは(Foreign Key、略:FK)

表と表を関連付ける関係データベースで他の表を参照するときに他の表の主キーを参照する。
参照される主キーを外部キーという。
例えば上記のER図の場合で同姓同名の会員が投稿した際に、投稿で会員を識別する際に使用できます。

写真ID(PK) 会員ID(FK) 写真 コメント
1 56 写真 ラムショルダー
2 89 写真 ラムチョップ

上記のテーブルのように会員IDを外部キーとしておくことで56と89が同姓同名だとしても別々で識別することができます。

外部キーで置き換えることのまとめ

  • どの人を指しているのか名前だけでは判断できなくなる場合があるため、なるべく外部キーで置き換える
  • 例えば投稿テーブルに名前を保有するのではなく、会員IDを持たせることで一意性を待たせる
  • 同姓同名であってもidで管理するため、判断ができるようになると言ったように問題点が解決する

今回は主キーと外部キーのみでしたが、他にもいろいろとキーは存在するため使用する機会が出てきたらその都度振り返りたいと思います。

参考

https://qiita.com/masatom86650860/items/ab41a8bbbc2fd59d3ba4
https://medium-company.com/主キー/
https://medium-company.com/外部キー/

Discussion