2011-12-07 16 views
0

私はEntity Framework 4 Code Firstで動作するデータベース設計を考え出しています。実際には、私はまだEF4 Code Firstの経験はありませんが、私が理解しているように、コードを書くと、データベースとテーブルが作成されます。Entity Framework 4とSQL Server 2008複数の可能な外部キー

問題はこれです。オークションにはさまざまなタイプがあります。それらはすべて共通のフィールドと特定のものを持っています。コードでは、Auctionと呼ばれる基本抽象クラスと、LowestUniqueBidAuctionEnglishForwardAuctionなどのサブクラスを想定しています。

驚くことはありません。問題は、これを模倣するデータベース構造を想像していることです。私はAuctionテーブルとLowestUniqueBidAuctionテーブルとEnglishForwardAuctionテーブルを想像しています。 Auctionテーブルでは、各行のためにこれら2つのテーブルのうちの1つに外部キーがあると想像してください。のオークションのタイプによっては、があります。私はまた、Auctionテーブル内に、派生オークションテーブルの名前(EnglishForwardAuctionなど)を持つ別の列を想像します。

問題は、私が外部キーを作成したときはいつでも、キーポイントが意味する外部テーブルの名前を指定しなければならないということです。ただし、この場合、キーが指すことができるテーブルが多数あります。ここには多くの問題があります。まず、外来キーを使用せずに通常のフィールドを使用するだけですが、データベースはデータの一貫性を維持できません。 2番目の問題は、EF Code Firstがこれをどのように処理するかです。つまり、AuctionテーブルからすべてのEnglishForwardAuction行を尋ねると、それはテーブル名を持つ列を参照し、余分なフィールドを取得するためにEnglishForwardAuctionテーブルに参加する必要があることをどのように知っていますか?

これまで誰も似たような問題に直面していませんか?

おかげで、

サチン

答えて

関連する問題