取り返しのつかないことに…
テーブルの命名規則の理解が曖昧なまま、DB設計をしてしまい、アプリがいよいよ完成という頃にミスが発覚しました。大変恥ずかしいですが、初期のテーブル設計は下記のようになっていました。(まさに地獄)
皆様には同じような過ちをして欲しくないため、記録を残すことにいたしました。
内容は初学者向けになりますが、簡単にまとめましたので是非理解度チェックしてみてください!
命名規則チェックリスト
🔶 テーブル名
①複数形で表記する "〜s"
❌:fruitテーブル
🙆♂️:fruitsテーブル
②スネークケースで表記する
❌:fruitBasketテーブル (キャメルケース)
🙆♂️:fruit_basketテーブル
③英語で表記する。ローマ字は好ましくない
❌:furuutsuテーブル (あまり良い例が浮かびませんでした。)
🙆♂️:fruitsテーブル
④大文字を使用しない
❌:FRUITSテーブル
❌:Fruitsテーブル
🙆♂️:fruitsテーブル
🔶 カラム名
カラム名でも基本的にテーブル名と同様な規則が適用されます。
①テーブル名から分かることは書かない
fruitsテーブルの場合、
❌:fruit_name
🙆♂️:name
②1対多の関係で他テーブルのidを参照する場合は単数形を利用する
❌:fruits_id
🙆♂️:fruit_id
(補足:他のテーブルの主キーをjoinする場合という意味です。)
③DATE型のカラムは「受動態_on」
❌:opened
🙆♂️:opened_on
④TIMESTAMP型のカラムは「受動態_at」
❌:updated
🙆♂️:updated_at
おおよそはこれで網羅できているのではないでしょうか。これらの他にも注意すべきことはあるようなので今後の課題とします。
初学者の方は是非調べてみてください。
参考:【初心者、必見】こんなのあるんだ!データベースの命名規約
最後に
これらをきちんと理解しておらず、開発の終盤で気付きました。(エンジニア転職を目指す初学者です。)
終盤で気づいたとしても、ORMを用いて開発を行っているため被害は甚大で修正は困難でした…
今回の件で、初期の設計の重要性を身にしみて感じました。もう二度と間違えないと誓います。
そう考えると大変良い勉強になりました。
(もしこの記事に誤りがありましたらご教授いただけると幸いです。)