結論
- 扱うデータが日付 (date) なら、
registered_onのようにsuffixにはonを使うべし - 扱うデータが日時 (datetime) なら、
registered_atのようにsuffixにはatを使うべし
背景
これまでデータベースのカラム名を命名する際、日付 (date) でも日時 (datetime) でもsuffixには at を使っていた。
だが先日、英語的には日付と時間で明確に使い分けがあって日付の場合は at よりも on のほうが適切である、と教えてもらった。
端的にまとめると、 at は点を示す前置詞なので時間を厳密に表す場合に適切、 on は曜日や日など(時間に比べて)幅のあるものを表す場合に適切、ということらしい。
コーディング規約的にはどうなのか
理屈としては理解できたが、これまで聞いたことがない使い分けだったため従うべきかどうかは迷った。そのため、先の使い分けを肯定しているコーディング規約等があればそうすべき根拠が増えて従いやすいので調べた。
軽く調べた限りでは本件について明確に定義しているルールはあまりなかったが、Thoughtbot社のRailsスタイルガイドには下記のような記述があった。
Name date columns with _on suffixes. Name datetime columns with _at suffixes.
今後
自分としては使い分けの理屈には異論ないのでdateカラムならonを、datetimeカラムならatをsuffixとして使っていくことにする。