MySQLでは「カラム名だけをキャメルケース」にした方がいいのではないか?

テーマ、知りたいこと

MySQLの命名規則で「カラム名だけをキャメルケース」という案を考えたのでが、おかしいでしょうか?

(ただし「テーブル名とインデックス名はスネークケース」です。)

背景、状況

PHPとJavaScriptとの兼ね合いから、MySQLカラム名をキャメルケースにしたいと考えています。

なぜなら、PHPの慣習でクラス内変数はキャメルケースです(それに私はクラス外でもそうしようと思っています)し、JavaScriptの慣習もキャメルケースなのに、MySQLのカラム名がスネークケースでは下記のような// 不統一生じるためです。

PHP

1$row = DBからSELECTしたレコード;2$kindId = $row['kind_id']; // 不統一

一方で、次の Qiita では「> 大文字を利用しない」と「> 複数単語の連携は-スネークケース」が推奨されており、
https://qiita.com/genzouw/items/35022fa96c120e67c637#大文字を利用しない

その理由は「> DBにより大文字小文字を区別するもの、しないものなどがあるため小文字で統一を図る」と記載がありますが、

しかし、次の StackExchange では「> As for column names, it should not be an issue.」と記載があるので、どうやらカラム名は問題ないように思われます。
https://dba.stackexchange.com/questions/91606/is-camel-case-for-column-names-safe

そこで、今回の案に至りました。

この案においては、MySQL・PHP・JavaScript間の変数名がキャメルケースで統一できる代わりに、MySQLのカラム名とテーブル名がもちろん不統一になりますが、テーブル名なんてクエリ文にしか記載しませんよね。
上記のような// 不統一と比べれば圧倒的に不統一感は減らせると個人的には感じます。

ただ、素人案なので将来的な懸念や実装での問題を想定するまでに至っておりません。
有識者の皆様、こちらの案についてアドバイスを頂けませんでしょうか。
(カラム名だって大文字はマズイ、あまり慣習的でない実装は避けた方がいい、逆にPHPとJavaScript側をスネークケースにした方がいい、などなど。)

どうぞ宜しくお願い致します。

コメントを投稿

0 コメント