データベースの命名規則
公表されている医療情報をPostgreSQLに取り込んで活用しようとしているときの覚書。
今後のためにデータベースの命名規則を考えてみた。
環境: PostgreSQL 15.6
WordPressのデータベースを参考にする。
参考: Database Description « WordPress Codex
チーム内で共有して開発しやすくすることが目的。
データベース名
- 小文字の英単語。
例)medical - 単語はアンダースコアで分ける(スネークケース)
テーブル名
イミュータブルデータモデルで設計する。
リソースとイベントに分けてテーブル設計する。
参考: イミュータブルデータモデル(入門編) | PPT
接頭辞を付ける。リソースは「r_」。イベントは「e_」。
→ 直感的でないのでやめた。
設計の考え方としてリソースとイベントに分けるがテーブル名は関係ない。- 小文字の英単語。
- 単語はアンダースコアで分ける(スネークケース)。
metaも分ける(WordPressはmetaを分けてない)
例) hospital_meta - 基本は複数形。
例)hospitals - カラムを追加したくなったときはmetaテーブルで十分か検討する。
カラム名
公開情報をインポートするので、可読性を優先し日本語も許容する。
PostgreSQLの識別子はデフォルトで64バイトまで。
UTF8の日本語だと16文字まで。
参考: PostgreSQL: Documentation: 16: 4.1. Lexical Structure
- idはテーブル名を付けて分かりやすくする。
例) hospital_id - 公開情報をインポートするカラムは日本語(10文字以内)。
CREATE TBLE文にソース情報を残す。 - システム用のカラム名は小文字の英単語。
- 単語はアンダースコアで分ける(スネークケース)。
- 作成日: inserted_date, 更新日: modified_dateは基本必須。
Laravelはcareted_at, updated_atらしいが_dateの方が分かりやすい。 - is_deletedよりdeleted_dateを使う。
共通
- 日本人が直感的に分かるレベルの英単語を使う。
- 命名規則を変更する際は経緯を残す。
【関連記事】
- FreeBSD14にPostgreSQL+pgAdmin4をインストール
- 病院の施設基準を自動更新するには?
- ハローワークAPIで求人情報検索
- Pythonのコーディング規約
- PHP Standards Recommendations:PHPコーディング規約