2009-06-02 4 views
3

データベーステーブルを自分のJavaオブジェクトにマッピングしています。一般的に私は、書籍情報を保持するテーブルをBOOKSと呼ぶという点で、複数形のテーブルに名前を付けます。しかし、Javaオブジェクトは1つの本を表し、Bookと呼ばれる必要があります。著者/著者なども同様です。O/Rマッピングを行う際の命名規則

一方、ドメインオブジェクトとテーブルに同じものを与えるのは簡単です。

人々が従う命名規則はありますか?私はこれがO/Rマッピングを行うときだけでなく、一般的なアプリケーションにも当てはまると思います。

答えて

8

あなたの最初の思考にスポットがあります。

各オブジェクトは個別であるため、オブジェクトは単数型である必要があります。

テーブルには複数のテーブルが含まれている必要があります。

Ruby on Railsに組み込まれている命名規則を確認してください。

+0

私はこれと非常に似た応答をタイプしていました。 Web世界では、Ruby on RailsはORMをどのように処理するかについての標準の一種なので、そこを見て答えを見つけることは素晴らしい提案です。 +1 :-) –

+0

各行はエンティティの1つのインスタンスを表すので、テーブル名は特異でなければならないと主張できます。 – GreenieMeanie

+0

@GreenieMeanie - 複数のテーブルに名前を付ける私の選択は、私のSQLがより自然に読もうとすることから来ています。私には「Select * from Persons where ...」は「Select * from Person where ...」よりも自然に読み込まれます。 YMMV。 – Bevan

1

私はASP.NETアプリケーションでSubSonicを使用していますが、ActiveRecordクラスに名前を付けるときには複数形を取り除いています。これは、標準よりもスタイルの問題です。

Invoicesではなくで作業することをお勧めします。私はだから通常で1レコードずつ処理します。

0

私は通常、どこでも同じ標準を使用していることを確認しています。また、私は自分の命名に論理名を使用しています。

のでブックスDbBooksのようなものになって、著者はDbAuthorsなっ等の

5

私たちは、テーブル名のとOMクラスの単数形を使用しています。それは私がSQLまたはJavaを書いているかどうかを

people.last_name、

より

person.last_name

を言って、私には、より理にかなっています(もちろん、それはperson.lastNameになりますが、その点が分かります)。

+1

単名テーブルの利点は、 's'または 'es'、-f + 'ves'(車/車、バス/バス、オオカミ/オオカミ)、不規則なホストの複数の問題に対処する必要がないことです。 (子供/子供、ガチョウ/ガチョウ、ムース/ムース)。 Railsには、これを処理するための特別なルールシステムがあります。これはプロジェクトごとに構成可能ですが、私はそれを不必要な手間とみなしています。 – Chadwick

0

CJ Date複数の名前は使用されていません。唯一の例外は単語 "売上"です。それ以外は、特異な名前を使用してください。

user.emailを比較しますか=?そして

users.emailに(1,2,3)

でaccount.value =アカウント。(1,2,3)

または(最悪オプション)

users.emailの値=? account.values in(1,2,3)

0

jOOQは、データベーススキーマからJavaクラスを生成します。テーブルをモデル化するクラスは、テーブル自体と同じものと呼ばれる。

  • AUTHOR>Author
  • BOOKS>Books

オブジェクト(またはレコード)をモデリングするクラスは "Record" を付けることになります。

  • AUTHOR>AuthorRecord
  • BOOKS>​​

テーブルが呼び出されても、それはかなり直感的で一般的です。

http://www.jooq.org