1

私は Entity Framework Code First をいじっていたところ、テーブルのグループを関連付ける最良の方法について立ち止まってしまいました。私はこれを完全に間違った方法で見ている可能性があります。その場合、誰かが私を正しい方向に向けることができれば幸いです.

基本的に、3 つのテーブル、2 つのメイン テーブル、および両方のテーブルに共通のフィールドを保持する 1 つのテーブルがあります。

今、私が立ち往生しているのは、2 つのメイン テーブルと 3 番目のテーブルの間にどのような関係を設定する必要があるかということです。2 つのメイン テーブルは常に 3 番目のテーブルと 1 対 1 の関係にありますが、3 番目のテーブルはテーブル 1 またはテーブル 2 のいずれかに関連付けられます。

私はこれを正しい方法で見ていないのでしょうか?3 番目のテーブルを削除して、共通のフィールドを両方のテーブルに複製するだけでよいでしょうか。

現時点での私のテーブルの構造は次のとおりです。

表 1:
-- Id
-- RatePricingId
-- 名前
-- CreatedOn
-- ModifiedOn

表 2:
-- Id
-- RatePricingId
-- 名前
-- StartOn
-- EndOn
-- CreatedOn
-- ModifiedOn

表 3 (共通フィールド)
-- Id
-- 月曜日
-- 火曜日
-- 水曜日
-- 木曜日
-- 金曜日
-- 土曜日
-- 日曜日
-- MinNights
-- CheckInOutDays
-- RateType
-- CreatedOn
-- ModifiedOn

乾杯、

トム

編集:

テーブル 1 と 2 にテーブル 3 への外部キーがあるように最初にセットアップしましたが、エンティティ フレームワークでこれを使用するときに問題が発生しました。実際には、テーブル オブジェクトの 1 つにのみ関連付けられます。

4

2 に答える 2

0

Morteza Manavi のブログ投稿に出くわしました。これは私の質問に答えていると思います。

http://weblogs.asp.net/manavi/archive/2011/04/14/associations-in-ef-4-1-code-first-part-3-shared-primary-key-associations.aspx

乾杯、

トム

于 2013-04-28T09:29:23.347 に答える
0

あなたの質問は、エンティティ フレームワーク、asp.net などとは何の関係もありませんが、データベースの設計とは関係ありません。再タグ付けするべき

唯一の違いのようです

  • 開始日
  • エンドオン

したがって、これ以上の背景がなければ、おそらく 1 つのテーブルのみを使用することになるでしょう....おそらくあなたが期待した方法ではないかもしれませんが、私にはもっとシンプルに思えます。

3 つのテーブルを保持したい場合は、table1 から table3 への外部キーと、table2 から table3 への外部キーを作成すれば問題ありません。

于 2013-04-27T20:14:20.383 に答える