データベース設計の基礎:データベース、テーブル、および列の命名規則
基本原則
- 意味のある名前: 名前は、オブジェクトの内容を明確に反映する必要があります。
- 一貫性: すべてのオブジェクトに同じ命名規則を適用する必要があります。
- 簡潔さ: 名前は短く、分かりやすくする必要があります。
- 大文字と小文字: 大文字と小文字を区別する必要があります。
- 特殊文字: 特殊文字の使用は避ける必要があります。
- データベース全体を表す名前:
db_name
- 特定のアプリケーションを表す名前:
app_db
- 特定の環境を表す名前:
dev_db
テーブル
- テーブルの内容を表す名前:
users
- 複数のテーブルを組み合わせた名前:
orders_products
- テーブルの役割を表す名前:
lookup_table
列
- 列の内容を表す名前:
first_name
- データ型を表す名前:
age_int
- 主キーを表す名前:
id
言語に依存しない命名規則
- 接頭辞と接尾辞: 接頭辞と接尾辞を使用して、オブジェクトの種類を区別することができます。
- アンダーバー: 単語を区切るためにアンダーバーを使用することができます。
- 略語: 一般的に認識されている略語を使用することができます。
例
-- データベース
CREATE DATABASE db_name;
-- テーブル
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
-- 列
ALTER TABLE users ADD COLUMN age_int INT NOT NULL;
データベース、テーブル、および列の命名規則は、データベースの理解と管理を容易にするために重要です。言語に依存しない命名規則は、異なるプログラミング言語間でデータベースを共有する場合に特に重要です。
-- データベース
CREATE DATABASE db_users;
-- テーブル
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
age_int INT NOT NULL,
PRIMARY KEY (id)
);
-- テーブル
CREATE TABLE orders (
id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
order_date DATETIME NOT NULL,
total_price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users (id)
);
-- 列
ALTER TABLE users ADD COLUMN created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
-- 列
ALTER TABLE orders ADD COLUMN shipping_address VARCHAR(255) NOT NULL;
- データベースの名前は
db_users
です。 - テーブルの名前は
users
とorders
です。 - 列の名前は、その内容を反映しています。
- アンダーバーを使用して、単語を区切っています。
このサンプルコードは、あくまでも参考です。実際のデータベース設計では、要件に合わせて命名規則を調整する必要があります。
データベース、テーブル、および列の命名規則:その他の方法
PascalCase は、各単語の最初の文字を大文字にする命名規則です。
-- テーブル
CREATE TABLE Users;
-- 列
ALTER TABLE Users ADD COLUMN FirstName;
camelCase は、最初の単語のみ小文字にし、残りの単語の最初の文字を大文字にする命名規則です。
-- テーブル
CREATE TABLE users;
-- 列
ALTER TABLE users ADD COLUMN firstName;
Hungarian notation は、データ型を表す接頭辞を名前の前に付ける命名規則です。
-- 列
ALTER TABLE users ADD COLUMN strFirstName VARCHAR(255);
コメントを使用して、オブジェクトの名前を補足することができます。
-- テーブル
CREATE TABLE users (
-- ユーザー ID
id INT NOT NULL AUTO_INCREMENT,
-- ユーザー名
username VARCHAR(255) NOT NULL,
-- パスワード
password VARCHAR(255) NOT NULL,
-- メールアドレス
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
最適な方法
データベース、テーブル、および列の命名規則には、最適な方法はありません。使用する方法は、プロジェクトの規模、複雑性、および個人的な好みによって異なります。
重要なのは、一貫性のある命名規則を使用し、すべての開発者がその規則を理解できるようにすることです。
その他のヒント
- 既存の命名規則と標準に従うようにします。
database database-design language-agnostic