データベース命名規則:テーブル、カラム、キー

6 分で読了

データベースで一貫した命名をすると、混乱を防ぎ、クエリが簡潔になり、スキーマ移行も安全になります。

標準:snake_case

SQLデータベースで圧倒的に主流の規則は、すべてにsnake_caseを使うことです。テーブル名、カラム名、インデックス、制約のすべてに適用されます。

CREATE TABLE user_accounts (
  user_id SERIAL PRIMARY KEY,
  first_name VARCHAR(100),
  last_name VARCHAR(100),
  created_at TIMESTAMP DEFAULT NOW()
);

テーブル名:単数形か複数形か?

スタイル採用例
単数形user, orderLaravel, Django
複数形users, ordersRails、多くのチーム

どちらかを選び、一貫させましょう。どちらも有効です。

カラム命名のルール

  • 主キー: idまたはtable_name_id
  • 外部キー: referenced_table_id(例: user_id)
  • タイムスタンプ: created_at, updated_at, deleted_at
  • 真偽値: is_active, has_verified
  • 予約語を避ける: order, user, groupをカラム名にしない

インデックスと制約の名前

idx_users_email        -- インデックス
uq_users_email         -- 一意制約
fk_orders_user_id      -- 外部キー
chk_orders_total       -- チェック制約

snake_caseに変換

snake_caseコンバーターまたはケース変換ハブを使いましょう。