🗂
テーブル定義書とは
テーブル定義書は、テーブルやカラムの定義や制約を定める設計書です。
作成にあたり各要素の復習や命名規則について残したいと思います。
テーブル定義書の作成にあたり
各要素一覧
項目 | 説明 |
---|---|
PK(主キー) | テーブルのレコードを一意に特定する。カラムテーブルを作成した時に必ず生成されるid |
FK(外部キー) | 別のテーブルとの関連性を表すためのカラム。他のテーブルの値を参照する。 |
データ型 | データの種類を指定し、そのカラムに格納できるデータの形式を制限する。 |
NOT NULL | 空のカラムを禁止する制約 |
AUTO INCREMENT | 設定したカラムに自動的に番号を割り当てる機能 |
INDEX | 索引の意味を持ち、データベースの表の検索処理を高速化させるもの |
DEFAULT | データの初期値を設定する機能 |
データ型種類
データ型 | 種類 |
---|---|
integer | 数値(整数) |
decimal | 数値(精度の高い小数) |
float | 数値(浮動小数) |
string | 文字(短い文字列) |
text | 文字(長い文字列) |
date | 日付 |
datetime | 日時 |
time | 時刻 |
timestamp | タイムスタンプ |
binary | バイナリ |
boolean | 真偽 |
命名規則
テーブル名とカラム名を定義するにあたりいくつかルールがあるのでまとめます。
テーブル
- テーブル名が小文字の英語
- 複数形
- スネークケースである
例:cart_items
カラム
- カラム名が小文字の英語
- スネークケースである
- テーブル名をカラム名の頭につけない
- ローマ字ではなく英単語を用いる
- 略語、略名は使わない
- boolean型のカラムはis_〇〇という形で定義する
- 外部キーは(テーブル名単数形)_idの形になっている
- 名前を見ただけで中に入るデータを正確に読み取れる
テーブル名をカラム名の頭につけない
例:管理者(admins)テーブルのメールアドレスカラム:admin_email → ✖
テーブル定義書を見た人は管理者テーブルのemailとわかるため、カラム名の先頭には原則テーブル名は不要。
boolean型のカラムはis_〇〇という形で定義する
例:customersテーブルの会員ステータス(is_activeカラム)の場合
@customer.is_active
これを条件分岐する際にis_〇〇と定義しておくことで自然なコードになります。
if @customer.is_active
# アクティブな会員に対する処理
else
# 退会済みの会員に対する処理
end
上記の記載にすることで「もし会員がアクティブであるならば」とわかりやす文になります。
TRUEとFALSEで何かを判別するようなboolean型のカラムでは、is_〇〇と定義することで読みやすいコードを書くことにつながります。
テーブル定義書を作成する際は、上記の命名規則を意識しながらわかりやすい名前で作成することで他者が見た際にも伝わるようにすることが大切です。
参考
Discussion