10

Doctrine ORMを使用する際にテーブルの命名規則はありますか? 私は複数形でテーブルに名前を付けるのが好きですが、慣習がある場合はそれに固執したいと思います。

したがって、テーブル「users」は、fk を単数 (「user_id」) として使用してテーブルに関連付けられます。

これにはベスト プラクティスがありますか (単数形または複数形のテーブル名を使用)。後者の場合、これは複数形が「s」を追加する単純なケースではないテーブルにどのように適用されますか。

たとえば、現在、「s」を追加する規則を維持するために、「categories」ではなく「categorys」というテーブルがあります。

これは賢明なアプローチですか?

4

2 に答える 2

7

私は自分自身の基本的な ORM を使用するときに複数のテーブル名を使用していましたが、symfony + Propel を使い始めて、Doctrine を少し使い始めたときに単数形のテーブル名に切り替えました。この理由は、 UserではなくUserを作成するため、クラス名にあります

Doctrine では、コレクションやリレーションに関しては、エイリアスがどうあるべきかを伝えます:

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/working-with-models/en

Userは多くの Phonenumber を持つことができるため、YAML スキーマでforeignAlias が設定されていることがわかります。これにより、 $user-> Phonenumbersを介して効果的にアクセスされるPhonenumbersになります。

この例では、Categoryという名前のテーブルとレコードを保持しながら、 foreignAliasCategoriesに設定します。

于 2010-11-04T20:00:15.747 に答える
2

最初の回答者が説明しているように、論理的には次のようなメソッドが必要なため、Doctrine の規則ではテーブルとモデルに単数形の名前を使用します。

$user->Phonenumbers

... それ以外の:

$user->Phonenumberss

定義は、エイリアスを使用してカスタマイズできます。

于 2010-11-05T18:08:48.503 に答える