2

私はこの状況に対処しています。SQL SERVERには、、、という3つのテーブルがMoviesありSeriesますOrders

OrdersItemIdこれがMovieId(Movies PK)またはSerieId(Series PK)である可能性がある場所があります。つまり、Ordersテーブルには、シリーズの映画からのレコードが含まれている可能性があります。

この関係を維持する方法や、それを実装するための最良の方法がわかりません。私が知るまで、私は2つのテーブル間で1対1または1対多の関係しか作成できず、3つでは作成できません。

前もって感謝します。

4

3 に答える 3

3

この場合、映画とシリーズを、を含む共通の属性を使用して同じテーブルに保存する方がよいと思います。タイプ(MovieまたはSerie)を示し、別のテーブル(正規化する場合)または同じテーブル(結合を回避するため)に追加の属性がある列。

于 2012-11-12T18:43:49.537 に答える
0

最良の方法は次のとおりです。

  1. 両方のエンティティが共有する必要のあるフィールド(ItemIdなど)を使用して、映画とシリーズの汎用テーブルを作成します。
  2. 手順1で作成したテーブルを参照する映画のテーブルを作成します。このテーブルには、映画についてのみコンパイルする必要のあるフィールドが含まれています。この新しいテーブルは、前のテーブルと1対1の関係になります。
  3. シリーズも同じです。
  4. 注文テーブルを作成し、ステップ1で作成したテーブルのItemId主キーを指すようにItemId外部キーを設定します。
于 2012-11-12T18:48:30.367 に答える
0

sql-serverでのテーブル継承の実装について学ぶ必要があります。

あなたは製品を持っていますか、そしてこの製品は映画セリエかもしれません。

リンクされたサンプルでは、​​人学生または教師である可能性があります。

于 2012-11-12T18:44:20.103 に答える