テーブルとカラムのERD命名規則
ER図におけるテーブルとカラムの命名のベストプラクティス。snake_case、複数形テーブル名、外部キーの命名パターン、予約語の回避を解説します。
ERD Basics
詳細な説明
命名規則が重要な理由
一貫した命名規則はデータベーススキーマを読みやすく、保守しやすく、エラーが少ないものにします。複数の開発者が同じデータベースで作業する場合、合意された規則が混乱を防ぎ、バグを減らします。
テーブル命名ルール
| ルール | 良い例 | 悪い例 |
|---|---|---|
| 複数形名詞を使用 | users、orders |
user、order |
| snake_caseを使用 | order_items |
OrderItems、orderitems |
| 説明的に | user_preferences |
prefs、up |
| 予約語を避ける | user_orders |
order(SQL予約語) |
カラム命名ルール
- snake_caseを使用:
first_name、created_at、is_active - 主キー:
id(シンプル)または{テーブル単数形}_id(明示的) - 外部キー:
{参照先テーブル単数形}_idを使用 — 例:user_idはusers.idを参照 - ブーリアンカラム:
is_、has_、can_のプレフィックスを付ける — 例:is_active、has_verified_email - タイムスタンプ:
created_at、updated_at、deleted_atを使用
結合テーブルの命名
多対多リレーションシップでは、結合テーブルは両方のテーブル名をアルファベット順に組み合わせます:
users+roles→roles_users(アルファベット順)またはuser_roles(文脈的)courses+students→course_enrollments(意味的な名前が推奨)
これらの落とし穴を避ける
- 省略形:
usr、addr、qty— 普遍的に理解されていない限り、完全に綴る - プレフィックス:
tbl_users、t_orders— テーブルの型は文脈から明らか - 混在した規則: 同じスキーマで
camelCaseとsnake_caseを混在 - 一般的な名前:
data、info、details— 意味を伝えない
ERDエディタでの適用
ERDエディタでエンティティを作成する際、プロパティパネルでテーブル名を設定します。ツールはテーブル名とカラム名を生成されるSQLに直接渡すため、ここで規則に従うことで、エクスポートされたCREATE TABLE文が最初から本番環境に対応したものになります。
ユースケース
新しいチームのコーディング標準を確立する場合や、新しい開発者をオンボーディングする場合。ERD設計段階から適用された明確な命名規則は、初期スキーマ設計からアプリケーションコードやORMモデルまで一貫性を確保します。