2011-08-04 8 views
0

私が知っているのは、テーブル名を持つモデルの名前です。 しかし、複数のテーブルにアクセスするモデルはどうですか? それらの命名基準は何ですか?複数のテーブルにアクセスするモデルのネーミングパターン

+0

モジュールによってあなたに何を意味するの?それはモデルクラスなのでしょうか?エンティティフレームワークを使用していますか? –

+0

ご迷惑をおかけしましたがモデルクラスでした。 –

答えて

1

を生成しますので、モデルは外側に表示して、コントローラと消費による操作のために、直面しています。 Modelクラスの名前は、ViewとControllerの作成者を助けるために選択する必要があります。私はモデルの実装の詳細の名前(データベーステーブル)が必ずModelクラスの名前の正しい基底であることに同意しません。

単純な例を考えてみましょう:私たちにCUSTOMERテーブルがあるとします。その後、私たちはCustomerクラスを作成しました。今(そう、それが起こるレガシー・データベースと実際のシステムでは、この不自然な例では、)パフォーマンス上の理由から、おそらく完全に異なるシステムの利益のために、私たちは列のほんの数を含むCUSTOMER_SUMMARYテーブルを作成することを決定したと仮定し、残りの列をすべて含むCUSTOMER_DETAILS表。 Customerクラスの名前を変更する必要がありますか?これは、両方のテーブルからデータを取得していないので、私たちは、もはや私たちの命名規則に準拠しますが、ビューの観点から、それはそれは、彼らが必要とするだけのものだ、顧客データです。私は「いいえ」と言いますが、名前は正確です。実装の詳細は変更されましたが、それは消費者にとって重要ではありません。

同様に、ORDERS、ORDER_LINES、PRODUCTS、Orderに関する情報を保持するクラス(3つのテーブルすべてからデータを取得する可能性が高いクラス)を持っている場合は、そのクラスをと呼びます。将来的にORDERSから取得したサマリーデータが必要な場合は、私はClass OrderSummaryを使用します。私は "外側"から理解しやすい名前を選択しようとします。

0

私は、まったく正式な命名規則はないと思います。ビジネスに合わせてモデルの実際のドメイン名を使用することができます。 AddressInfo, Street , Cityテーブルを1つのモデル(ドメイン)クラスにマップしたいとしましょう。名前はAddressのようになります。

1つのモデル(ドメイン)クラスの複数のテーブルをマッピングすること以外は、エンティティフレームワークでは適していません。それはあなたがMVCパターンの文脈で意味と仮定すると、パフォーマンスが低下し、非常に複雑なクエリ

関連する問題