データベース設計の基本とコツ:フィールド選定から主キーまでわかりやすく解説!

こんにちは。ゆうせいです。

「データベースを作ってみたいけど、どんなフィールドを作ればいいの?」「主キーって何? どう選べばいいの?」と思ったことはありませんか?

今回は、データベース設計の中でも最も基本でありながら奥が深い「フィールドの選び方」と「主キーの選び方」について、初心者の方にもわかりやすく解説していきます!


データベース設計の目的とは?

そもそも、なぜデータベースを設計するのでしょうか?

簡単にいえば、情報を効率よく管理して、必要なときにすばやく正確に取り出せるようにするためです。例えるなら、図書館の本棚。きちんと分類されていないと、探している本が見つからないですよね?それと同じです。


フィールドの選び方のコツ

1. 「誰が」「いつ」「何を」基本で考える

どんな情報を扱うのかを明確にしましょう。以下のような視点で項目を洗い出します。

質問
誰が?顧客名、社員番号
いつ?注文日、登録日
何を?商品名、金額、状態

コツ:
・データの粒度を揃える(例:住所を1つのフィールドにせず、都道府県、市区町村、番地に分ける)
・数値・日付・文字列は明確に区別
・1つのフィールドには1つの意味だけ持たせる


2. 冗長なデータは避ける!

例えば、「社員名」と「社員の所属部署名」を同じテーブルに毎回書いてしまうと、部署名を変えるときに全て修正しないといけません。

部署は別テーブルに切り分けて、参照する設計にしましょう。

これは「正規化(Normalization)」と呼ばれる考え方で、データの整合性を保つのに重要です。


主キーの選び方のコツ

主キー(Primary Key)って何?

データベースの各行を一意に識別するためのフィールドです。
例えるなら、学生名簿でいう「学生番号」。名前だけでは同姓同名がいるかもしれませんが、番号なら絶対にかぶりませんよね。


1. 一意性があることが絶対条件!

主キーに適さない例:

  • 名前(かぶる可能性がある)
  • メールアドレス(変更の可能性がある)

適した例:

  • 社員ID(自社で一意に発行している)
  • UUID(システムで自動発行されるランダムな識別子)

2. 自然キー vs 人工キー

項目自然キー人工キー
定義実世界のデータから選ばれたキーシステムが独自に生成するID
マイナンバー、ISBNコード連番ID、UUID
メリット意味がある柔軟に使える、衝突しにくい
デメリット意味が変わる可能性がある人間にとって意味がない

コツ:人工キーを使うのが無難!
データの構造を変更しても影響が少ないため、運用が安定します。


実際の例:顧客管理テーブル

フィールド名データ型説明
customer_idINT or UUID主キー(人工キー)
nameTEXT顧客の名前
emailTEXTメールアドレス(ユニーク制約つけてもよい)
phoneTEXT電話番号
created_atDATETIME登録日

このように、主キーを明確にしつつ、他の情報を「意味のある単位」で分けていきます。


よくある失敗と注意点

  • 複数のフィールドを主キーに設定しないと一意にならない場合:
     → 複合主キー(Composite Key)として設定するのも手。ただし運用がやや複雑に。
  • 日付や金額などを文字列型にする:
     → クエリや計算がしにくくなるので、適切なデータ型を選ぶ!
  • フィールド名があいまい:「data1」「項目A」など:
     → 後から見たときにわかりやすい名前にすることが大切!

数式も少しだけ!

たとえば、主キーで重複がないか確認するSQLは以下の通りです:

SELECT 主キー列, COUNT(*)
FROM テーブル名
GROUP BY 主キー列
HAVING COUNT(*) > 1;

(主キー列 × カウント)の中で、2回以上出てくるデータを表示してくれます。


今後の学習の指針

次は「正規化のステップ(第1正規形、第2正規形、第3正規形)」や、
リレーション(テーブル同士の関係)の設計」を学ぶと、さらに深く理解できるようになります!

また、実際にER図(Entity Relationship Diagram)を描いてみると、頭の中の設計が視覚化できておすすめです!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。