データベース
ヒント
- 編集中
- どんなプロジェクトでも使えるレベルなものにしていきたい
オブジェクトの命名規約
全般
プライマリーキー、外部キー
- 各テーブルのプライマリーキーは
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 |