今日ソースコードをレビューしていて、気になったことがありましたので共有します。
とあるテーブルに 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.」となりますので、できればこの date
は executed_on
などとしてほしいなーと思いました。
SELECT * FROM xx_jobs ORDER BY executed_on ASC;
のようなSQLになるので、かなり可読性があがるかなと思います。
データベース定義のコーディング規約がなくてすいません!早めに定義してみんなに共有していきます!