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

こんにちは。ゆうせいです。
「データベースを作ってみたいけど、どんなフィールドを作ればいいの?」「主キーって何? どう選べばいいの?」と思ったことはありませんか?
今回は、データベース設計の中でも最も基本でありながら奥が深い「フィールドの選び方」と「主キーの選び方」について、初心者の方にもわかりやすく解説していきます!
データベース設計の目的とは?
そもそも、なぜデータベースを設計するのでしょうか?
簡単にいえば、情報を効率よく管理して、必要なときにすばやく正確に取り出せるようにするためです。例えるなら、図書館の本棚。きちんと分類されていないと、探している本が見つからないですよね?それと同じです。
フィールドの選び方のコツ
1. 「誰が」「いつ」「何を」基本で考える
どんな情報を扱うのかを明確にしましょう。以下のような視点で項目を洗い出します。
質問 | 例 |
---|---|
誰が? | 顧客名、社員番号 |
いつ? | 注文日、登録日 |
何を? | 商品名、金額、状態 |
コツ:
・データの粒度を揃える(例:住所を1つのフィールドにせず、都道府県、市区町村、番地に分ける)
・数値・日付・文字列は明確に区別
・1つのフィールドには1つの意味だけ持たせる
2. 冗長なデータは避ける!
例えば、「社員名」と「社員の所属部署名」を同じテーブルに毎回書いてしまうと、部署名を変えるときに全て修正しないといけません。
→ 部署は別テーブルに切り分けて、参照する設計にしましょう。
これは「正規化(Normalization)」と呼ばれる考え方で、データの整合性を保つのに重要です。
主キーの選び方のコツ
主キー(Primary Key)って何?
データベースの各行を一意に識別するためのフィールドです。
例えるなら、学生名簿でいう「学生番号」。名前だけでは同姓同名がいるかもしれませんが、番号なら絶対にかぶりませんよね。
1. 一意性があることが絶対条件!
主キーに適さない例:
- 名前(かぶる可能性がある)
- メールアドレス(変更の可能性がある)
適した例:
- 社員ID(自社で一意に発行している)
- UUID(システムで自動発行されるランダムな識別子)
2. 自然キー vs 人工キー
項目 | 自然キー | 人工キー |
---|---|---|
定義 | 実世界のデータから選ばれたキー | システムが独自に生成するID |
例 | マイナンバー、ISBNコード | 連番ID、UUID |
メリット | 意味がある | 柔軟に使える、衝突しにくい |
デメリット | 意味が変わる可能性がある | 人間にとって意味がない |
コツ:人工キーを使うのが無難!
データの構造を変更しても影響が少ないため、運用が安定します。
実際の例:顧客管理テーブル
フィールド名 | データ型 | 説明 |
---|---|---|
customer_id | INT or UUID | 主キー(人工キー) |
name | TEXT | 顧客の名前 |
TEXT | メールアドレス(ユニーク制約つけてもよい) | |
phone | TEXT | 電話番号 |
created_at | DATETIME | 登録日 |
このように、主キーを明確にしつつ、他の情報を「意味のある単位」で分けていきます。
よくある失敗と注意点
- 複数のフィールドを主キーに設定しないと一意にならない場合:
→ 複合主キー(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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年5月20日データベース設計の基本とコツ:フィールド選定から主キーまでわかりやすく解説!
山崎講師2025年5月20日SEOに効く!パーマリンクの仕組みと最適化の方法を徹底解説
山崎講師2025年5月20日URLにアンダーバーや大文字が使われない理由とは?
山崎講師2025年5月19日Javaリフレクションとは?新人エンジニア向けにやさしく解説!