プロバイダーとユーザーの2つの「エンティティ」テーブルがあります。プロバイダーとユーザーの両方が複数のアドレス(配送、請求など)を持つことができます。
次に、各エンティティテーブルにアドレス情報を配置するのではなく、両方に共通のテーブルを作成します。アドレステーブルです。たとえば、主キー(ID列)、エンティティタイプ(プロバイダーまたはユーザー)、エンティティキー(親エンティティテーブルの主キー)、およびアドレスタイプ(出荷など)を使用してアドレステーブルを作成することを検討しました。必要なアドレス情報を使用します。
私が抱えている問題の1つは、外部キーの制約です。アドレス行に関連する親エンティティテーブルの外部キーがある場合、データを挿入しようとすると外部キー違反があることがわかりました。
テーブル内のFKを削除してから、EF 4.1で手動マッピングを作成することを考えていましたが、これを行う方法がわかりません。
http://i49.tinypic.com/2dt56dv.png(これがテーブルの画像です-アドレステーブルのobjectidはuseridまたはprovideridを保持し、objecttypeは「USER」または「PROV」のvarcharです)
どうすればこれを回避できますか?アドレスに1つのテーブルを使用したいのですが、一方の親に関連する行がないと、一方の親に子を追加できません。もちろん、参照整合性のために外部キーを使い続けたいと思います。
ありがとう