過去の多くのプロジェクトでは、データベースの列名を「_」で区切った2つまたは3つの単語として保持する傾向があることを観察しました(例:first_name)。ただし、同じ列がJavaBeanの変数firstNameにマップされます。
なぜ人々がfirstNameのようなデータベースフィールド名を保持しないのに、その間に_を使用する傾向があるのかわかりません。iBatisを使用する場合でも、結果マップマッピングを定義するための追加作業です。
よろしく、ジャタン
多くのデータベースでは、大文字と小文字が区別されない列名とテーブル名が使用されています (これは、最近よりもさらに多くのケースで使用されていましcamelCasedColumnName
た) CAMELCASEDCOLUMNNAME
。識別子にアンダースコアを使用すると、これらのデータベースではるかに読みやすくなり、頭痛を最小限に抑えてバックエンド データベースを変更できるようにしたい場合は、大文字と小文字が区別されるデータベースでも良い方法です。
コード側では、camelCase が Java のフィールド識別子の規則ですが、他の多くの言語ではアンダースコアが変数名とメソッド名の規則です。また、データベースを扱う際に開発者側で追加の作業を行うことなく、CamelCasedNames、underscored_names、またはその他の形式間で変換できるツールがあります。(たとえば、Ruby の ActiveRecord は、クラスの aがデータベース内のテーブルのNameLikeThis
a にマップされることを認識しています。)name_like_this
私は通常、データベース フィールドでも firstName を使用しますが、問題なく動作します。ただし、first_name を使用する正当な理由がいくつかある場合があります。おそらく、dbms、チーム、または会社がデータベースに first_name 表記を使用している場合や、誰かがその表記を気に入っている場合があります。
データベースが複数の異なるアプリケーション間で共有されることはよくあることに注意してください。これらのアプリケーションは、Java 以外の言語で作成されている可能性があります (そのようなことが想像できる場合)。データベースが新しいアプリケーション用に構築されている場合でも、将来、他のアプリケーションと対話する可能性があります。
したがって、フロントエンドの言語の規則に準拠しようとするのではなく、データベース スキーマの規範 (一般に、大文字と小文字を区別せず、アンダースコアを使用することを意味します) に従ってデータベースに名前を付ける方が理にかなっています。