0

EF4.3/Sql Server 2008 Web を使用しています。

正規化されたデータベースを作成しようとしました-ここにそのセクションがあります:

ここに画像の説明を入力

ご覧のとおり、共通の要因は、それらがすべて BuyerId を介してリンクされていることです。EF では、「Buyer.MatchBuyer.MatchNodes」などを使用してこの構造をナビゲートできますが、このナビゲーションをさらに簡素化する目的だけで追加の関係を作成することは悪い習慣と見なされるのではないかと思いました。

たとえば、BuyerId で LenderMatchNode と Buyer の間の関係を追加します。

すべてのアドバイスに感謝します。

4

1 に答える 1

0

これは、データベースで行うのは本当に良い考えではないと思います。エンティティ フレームワークを使用している場合は、「テーブル分割」を使用して、奇妙なデータベース構造を使用せずに同じ機能を実現できます。

これは良いチュートリアルです:

http://weblogs.asp.net/manavi/archive/2011/04/24/associations-in-ef-4-1-code-first-part-4-table-splitting.aspx

また、Scott Guthrie のブログには他にもあります。

http://weblogs.asp.net/scottgu/

編集:これが私が言及したチュートリアルです:

http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4-code-first-custom-database-schema-mapping.aspx

シナリオ 3 を確認できます。それがあなたが求めていたものだと思います。

編集: Gert Arnolds のコメントで、少し考え直しました。

次のようになります。

買い手

BuyerId
Name
Status
BuyerTypeId
RequestClass
AcceptQuota
TierId
Commission

マッチノード

BuyerId
TierId
Enabled
RuleClass

次に、Buyer-MatchNode に 1:N を設定し、場合によっては Buyer に複合キーを設定しますか?

EF では、前述のテーブル分割を使用して、探しているナビゲーション プロパティを提供できます。もちろん、それはおそらく大きな違いを生むことはありませんが、それはあなたが好むアプローチの問題だと思います.

于 2013-06-17T12:24:14.703 に答える