私はEntity Framework 4 Code Firstで動作するデータベース設計を考え出しています。実際には、私はまだEF4 Code Firstの経験はありませんが、私が理解しているように、コードを書くと、データベースとテーブルが作成されます。Entity Framework 4とSQL Server 2008複数の可能な外部キー
問題はこれです。オークションにはさまざまなタイプがあります。それらはすべて共通のフィールドと特定のものを持っています。コードでは、Auction
と呼ばれる基本抽象クラスと、LowestUniqueBidAuction
とEnglishForwardAuction
などのサブクラスを想定しています。
驚くことはありません。問題は、これを模倣するデータベース構造を想像していることです。私はAuction
テーブルとLowestUniqueBidAuction
テーブルとEnglishForwardAuction
テーブルを想像しています。 Auction
テーブルでは、各行のためにこれら2つのテーブルのうちの1つに外部キーがあると想像してください。のオークションのタイプによっては、があります。私はまた、Auction
テーブル内に、派生オークションテーブルの名前(EnglishForwardAuction
など)を持つ別の列を想像します。
問題は、私が外部キーを作成したときはいつでも、キーポイントが意味する外部テーブルの名前を指定しなければならないということです。ただし、この場合、キーが指すことができるテーブルが多数あります。ここには多くの問題があります。まず、外来キーを使用せずに通常のフィールドを使用するだけですが、データベースはデータの一貫性を維持できません。 2番目の問題は、EF Code Firstがこれをどのように処理するかです。つまり、Auction
テーブルからすべてのEnglishForwardAuction
行を尋ねると、それはテーブル名を持つ列を参照し、余分なフィールドを取得するためにEnglishForwardAuction
テーブルに参加する必要があることをどのように知っていますか?
これまで誰も似たような問題に直面していませんか?
おかげで、
サチン