PostgreSQLでDB設計する際、私が決めているルールです。
データ型
数値型
- 整数の場合は、基本INTEGER
- 「絶対に2byte範囲の整数」であると言える項目はSMALLINT。たとえば国を表すIDなど。
- 連番用の項目は、SERIAL/BIGSERIAL。
- 小数の場合は、基本NUMERIC。
文字列型
- 基本VARCHAR
- 備考やファイルパスなど、200文字以上ありそうな場合はTEXT http://lets.postgresql.jp/documents/technical/text-processing/1
真偽値
- 真偽値はBOOLEAN。CHAR(1)などを使わない
- NOT NULL制約ならば、DEFAULT句も使用する
制約
できる限り制約を付けること
- 主キー制約
- 外部キー制約
- check制約
その他
コメント
下記の項目にはコメントをつけること
* 全てのテーブル、ビュー、関数、スキーマ
* 全ての列
* 自分で作成した制約