命名規則
RDBMS で命名規則とは、データベース内で使用される名前(テーブル名や列名など)に一貫性を持たせるためのルールです。
命名規則はプロジェクトやチームによって異なりますが、一般的に、小文字のみ、大文字のみ、または最初の一文字を大文字にして残りを小文字にするなどのルールが設けられます。例) customers
、CUSTOMERS
、Customers
特に決まりはありませんが、慣習として、SQL 文で使用するキーワードは大文字、テーブル名やカラム名などは小文字に統一します。
下記は命名規則の一例です。
-
データベース名
- 会社名やプロジェクト名など、データベースを識別できるわかりやすい名前を使用します。
- 例)
company_db
,sales_project_db
-
テーブル名
- 小文字
- 単語はアンダーバー(
_
)で区切る - 複数形
- ただし、中間テーブルの場合、単数形と単数形を
_
で区切る - 例)
posts
,tags
,post_tag
-
カラム名
- 単数形
- 単語はアンダーバー(_)で区切る
- テーブル名に使用している単語をカラム名に使用する場合は単数形にする
- 例)
email
,post_id
,tag_name
-
インデックス名
-
idx
からはじめる - 単語はアンダーバー(
_
)で区切る - インデックスがどのテーブルのどのカラムを対象としているかが分かる名前
- 例)
idx_posts_created_at
,idx_users_email
-
以下の記事のように小文字に統一する場合もあります。
具体的な例
CREATE DATABASE company_db;
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE posts (
post_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
title VARCHAR(200),
content TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_posts_created_at ON posts(created_at);
おわりに
命名規則はあくまでデータベースの構造を理解しやすくし、保守性を向上させることを目的に設けられます。そのため、プロジェクトやチームによって命名規則は異なります。