多対多のジャンクションテーブルを複数持つDBを設計しようとしていますが、多対多のテーブルは前のテーブルに基づいたカスケードオプションです。DBスキーマ設計 - 複数の多対多のテーブルの設計
例:主キーを持つ4つのテーブルから始めましょう。
スタイルテーブル - >スタイルID(PK)
ファブリックテーブル - > FabricID(PK)
ボディテーブル - > BodyID(PK)
カラーテーブル - > ColorID(PK)
ユーザはスタイルを選択してからファブリックを選択するので、多対多の定義が容易です。
StyleFabricテーブル - 私は混乱してしまうところ> StyleID、FabricID(コンポジットPK)
は今、これがあります。スタイルとファブリックを選択したユーザは、ボディを選択できるようになりました。
StyleFabricBodyテーブル - > StyleID、FabricID、BodyID(コンポジットPK)
今のスタイルに基づいて、ファブリックやボディ、ユーザーが色
を選択することができます。だから私はと呼ばれるテーブルを作成しましたStyleFabricBodyColorテーブル - > StyleID、FabricID、BodyID、ColorID(コンポジットPK)
うまくいけば、でパターンを見ることができます今私は追加する5つのテーブルがあります。
これは正しい方法でメインテーブルを接続しますか?このような
- UserIDとスタイル、ファブリック、ボディ、色などを表す9つのIDのすべてを含むアイテム(またはユーザーの選択と呼ぶもの)。これは多対多の関係にはなりません。 – Anand
古いコメントを削除しても、カスケードの選択については少し間違っていたので、明確にするために、ユーザーがスタイルXを選択すると、ファブリックY、Z、Aに限定され、布Y、彼らはボディB、C、またはDなどに制限されていますか? – mallan1121
@ mallan1121はい、それはまさに私が意味していたものです。 – user6776148