データベース
ヒント
- 編集中
- どんなプロジェクトでも使えるレベルなものにしていきたい
オブジェクトの命名規約
全般
プライマリーキー、外部キー
- 各テーブルのプライマリーキーは
id
とし、serial型とする - リレーションする際はこの
id
を使う - プライマリーキーに意味を持たせない
- 外部キーとのリレーションはテーブル名 +
_id
とする- 例
-
親:
class
論理名 物理名 型 コメント id id serial auto increment クラス名 name varchar - -
子:
student
論理名 物理名 型 コメント id id serial auto increment class_id class_id integer 外部キー 姓名 name varchar -
-
- 例
日付 / 日時
- 命名
- 年月日のみの場合は"xx日"、時刻まで必要な場合は"xx日時"とし、明確に使い分ける
- 日にちを表す項目は
受動態_on
となり、date型 - 日時を表す項目は
受動態_at
となり、timestamp型
- 日にちを表す項目は
- 年月日のみの場合は"xx日"、時刻まで必要な場合は"xx日時"とし、明確に使い分ける
- timestamp型はすべて
timestamp(6) without time zone
とする- タイムゾーンを持たせない(標準の
UST
)
- タイムゾーンを持たせない(標準の
- 例
-
親:
classes
論理名 物理名 型 締切日 closed_on date 締切日時 closed_at timestamp 削除日 deleted_on date 削除日時 deleted_at timestamp
-
大文字を使用しない
- 物理名は小文字とアンダーバー("_")のみを使用する
- テーブル名、カラム名ともに大文字を使用しない
- データベースによっては大文字と小文字を違う文字とみなす場合、みなさない場合があるので小文字で統一する
OK/NG | 名前 |
---|---|
⭕ | document |
❌ | DOCUMENT |
❌ | Document |
単語の連結はスネークケース
- テーブル名、カラム名ともにスネークケースを使用する
- 大文字を使うキャメルケースやパスカルケースは使用禁止
OK/NG | 名前 |
---|---|
⭕ | table_name |
❌ | tableName |
❌ | TableName |
❌ | tablename |