2009-08-14 4 views
0

過去の多くのプロジェクトでは、データベースの列名を2つまたは3つの単語に '_'で区切って保存する傾向があることがわかりました。ただし、同じ列はJava Beanの変数:firstNameにマップされます。Java Beanとデータベースのフィールド名の命名規則の違いについてのご意見

人々がfirstNameのようなデータベースフィールド名を保持しない理由はわかりませんが、その間に_を使用する傾向があります。 iBatisを使用しても、結果マップのマッピングを定義する追加の作業です。

よろしく、 Jatan

答えて

4

多くのデータベースでは、大文字と小文字を区別しない列名と表名が使用されています(これは最近の場合よりも大文字です)。camelCasedColumnNameと入力した場合、実際にはCAMELCASEDCOLUMNNAMEとなりました。あなたの識別子にアンダースコアを使用することは、それらのデータベースでははるかに読みやすく、最小限の頭痛でバックエンドデータベースを変更できるようにするには、機密性の高いケースでも良い方法でした。

コード側では、camelCaseはフィールド識別子のJavaの規約ですが、他の多くの言語では、変数名とメソッド名の慣習がアンダースコアです。また、CamelCasedNames、underscored_names、または他の形式の間で変換できるツールがあります。これは、データベースを扱う際に開発者側の追加作業を必要としません。 (例えば、RubyのActiveRecordは、クラスのNameLikeThisがデータベース内のテーブルに対してname_like_thisにマップされていることを知っています)。

+0

これは、マッピングツールでカラム名USERFIRSTNAMEをsetUserfirstname()として解釈するときです。getUserfirstname()私は嫌いです! – OscarRyz

+0

まあ、彼らはおそらく、任意のdb識別子の異なる単語がアンダースコアで区切られていると仮定しています。あなたはツールが普遍的な命名規則に頼っていると主張することができますが、db識別子の下線を好む人は、その特定の問題が私を悩ますことはありませんでした。 –

0

私は通常も、データベースフィールドのためのfirstNameを使用して、それが正常に動作します!しかし、first_nameを使用する理由がいくつかあるかもしれません。おそらくdbms、チーム、または会社はデータベースのfirst_name表記を持っているかもしれませんし、誰かがその表記法を愛しているかもしれません!

0

複数の異なるアプリケーション間でデータベースを共有するのは一般的です。これらのアプリケーションは、Java以外の言語で書かれているかもしれません(あなたが想像できるのであれば)。データベースが新しいアプリケーションのために構築されている場合でも、将来他のアプリケーションがそれとやりとりする可能性があります。

したがって、フロントエンドの言語の規則に準拠しようとするのではなく、データベーススキーマ(通常は大文字と小文字を区別しないことを意味します)の基準に従ってデータベースを命名するのが理にかなっています。