テーブルの主キー

主キーの特徴

主キーはテーブルの行を一意に識別できる項目であり、以下の制約を持ちます。

  • not null制約

主キーとなる項目は、nullにできません。
つまり、値が存在しない可能性がある項目は主キーにはできません。

  • 一意制約

主キーとなる項目はテーブルのすべての行で異なる値が登録される必要があります。
また複数項目で主キーを形成する場合は、複数項目の値の組合せがすべての行で異なる値の組み合わせとなっている必要があります。

主キーにできる項目、できない項目

(主キーにできる項目)

  • 社員No、商品番号のような、個人や物に割り当てられた番号
  • 値が更新されない項目(登録日、購入日などのデータ登録時にテーブルに登録される日付)

(主キーにできない項目)

  • 値が存在しない場合がある項目

主キーのnot null制約を満たせないため、主キーにできません。
複数項目からなる主キーとした場合は、主キーとして選択したすべての項目で値が登録される必要があります。

  • 値が更新される可能性がある項目

値が頻繁に更新される項目を主キーとした場合、一意性の確保が難しくなります。
また、例えばSQL Serverでは、主キーに自動でインデックスがはられます。
そのため、更新される項目を主キーに選択してしまった場合、パフォーマンスに影響します。

DB設計、テーブル設計に詳しくなりたい方へ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

グラス片手にデータベース設計~生産管理システム編 (DB Magazine Selection)

グラス片手にデータベース設計~生産管理システム編 (DB Magazine Selection)