データベース命名規則:テーブル、カラム、キー
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, order | Laravel, Django |
| 複数形 | users, orders | Rails、多くのチーム |
どちらかを選び、一貫させましょう。どちらも有効です。
カラム命名のルール
- 主キー:
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コンバーターまたはケース変換ハブを使いましょう。