snake_caseなのかCamelCaseなのか?
Laravelの初期サンプルでは単数単語なので、参考にならない・・・。
結論:snake_case
MariaDB/MySQL の慣習は snake_case が圧倒的多数
- MySQL 系の世界では、テーブル名・カラム名は基本的に 小文字 + snake_case
- 大文字を含む名前は OS のファイルシステム依存でトラブルを起こす可能性がある
- Linux → 大文字小文字を区別
- Windows → 区別しない
- つまり、CamelCase は環境差異による事故のリスクがある
2. Laravel の規約も snake_case が前提
Laravel の Eloquent は:
- テーブル名 → snake_case(複数形)
- カラム名 → snake_case
- モデル名 → PascalCase(単数形)
という規約で設計されています。
例:
- モデル:
EmployeeRecord - テーブル:
employee_records - カラム:
employee_code
もしテーブル名を CamelCase にすると、Eloquent の自動推論が効かず、毎回 protected $table = 'EmployeeRecord'; を書く必要が出ます。
3. SQL の可読性・移植性が高い
snake_case は:
- 長いテーブル名でも読みやすい
- 他言語・他フレームワークでも共通理解される
- 将来の移行(PostgreSQL など)でも問題が起きにくい
CamelCase は SQL の世界では少数派で、可読性も落ちます。
