モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

DBでdateとdatetimeを扱うときのカラム名suffixの使い分け

結論

  • 扱うデータが日付 (date) なら、 registered_on のようにsuffixには on を使うべし
  • 扱うデータが日時 (datetime) なら、 registered_at のようにsuffixには at を使うべし

背景

これまでデータベースのカラム名を命名する際、日付 (date) でも日時 (datetime) でもsuffixには at を使っていた。 だが先日、英語的には日付と時間で明確に使い分けがあって日付の場合は at よりも on のほうが適切である、と教えてもらった。

english-club.jp

端的にまとめると、 at は点を示す前置詞なので時間を厳密に表す場合に適切、 on は曜日や日など(時間に比べて)幅のあるものを表す場合に適切、ということらしい。

コーディング規約的にはどうなのか

理屈としては理解できたが、これまで聞いたことがない使い分けだったため従うべきかどうかは迷った。そのため、先の使い分けを肯定しているコーディング規約等があればそうすべき根拠が増えて従いやすいので調べた。

軽く調べた限りでは本件について明確に定義しているルールはあまりなかったが、Thoughtbot社のRailsスタイルガイドには下記のような記述があった。

Name date columns with _on suffixes.
Name datetime columns with _at suffixes.

github.com

今後

自分としては使い分けの理屈には異論ないのでdateカラムならonを、datetimeカラムならatをsuffixとして使っていくことにする。