カラム名に date や time を使わない 予約語・可読性の話し

  • URLをコピーしました!

今日ソースコードをレビューしていて、気になったことがありましたので共有します。
とあるテーブルに date というカラムがありました。

SELECT * FROM xx_jobs ORDER BY date ASC; のようなSQLを見かけたので、気づくことができました。

MySQL において、DATE は予約語です。できれば予約語そのままをカラム名にしないほうがいいなと思います。

予約語とは

予約語とは、プログラミング言語やアプリケーションにおいて、あらかじめ決まった意味を持つ単語や記号、文字列のことです。ユーザーが利用できないように開発者側が事前設定しており、プログラム言語やアプリケーションによって異なります。

ただ、MySQLでは date というカラムを作ることができるので、本当はコーディング規約にすることなんだと思います。以後は、コーディング規約に予約語をカラム名に使わないことと、定義していきたいと思います。

レビュアーとして、個人的には、データベースのテーブルのデータには意味があるものだと思います。
その時に、この date がなんのデータなのか、すぐにわかる方がいいです。

例えばこの dateが、jobの実行日だったとします。
データを読むときはこうです。「このデータは2024年10月20日に実行される日次jobだ」のような感じです。
これを英語にすると、「It is daily job that will be executed on October 20, 2024.」となりますので、できればこの dateexecuted_on などとしてほしいなーと思いました。

SELECT * FROM xx_jobs ORDER BY executed_on ASC; のようなSQLになるので、かなり可読性があがるかなと思います。

データベース定義のコーディング規約がなくてすいません!早めに定義してみんなに共有していきます!

ツチノコテクノロジーに開発・保守を発注しませんか?

Laravel・Flutterの開発・保守をツチノコテクノロジーに発注しませんか?

まずはZOOMで打ち合わせ

お申し込みはこちら

ツチノコテクノロジーでは一緒に働く仲間を募集しています!

完全リモートで働きたい方へ!

詳しくは以下をご覧ください。

ツチノコテクノロジー採用サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

yfukudaのアバター yfukuda 取締役・システムエンジニア

ツチノコテックアカデミアの記事は、社内で誰かが質問してくれたことに回答したときに、ついでに記載しています!(^^)/
みんなの悩みを共有すれば、きっと誰かの役に立つと信じて更新しています!

目次