web-dev-qa-db-ja.com

たくさんのテーブル間で多対多?

enter image description here


TL; DR:その多くのテーブル間に多対多の関係を設定するにはどうすればよいですか?

  • 各ボディタイプには独自のテーブルがあります
  • 各ボディタイプテーブルの各車には、いくつかの機能があります。

私の「スキーマ」からわかるように、各車にはいくつかの機能がありますが、featuresテーブルをいくつかの車体タイプテーブル(多対多の関係)に接続する必要があります。私は数日間それについて考えましたが、私はまだこれを達成する方法がわかりません。

なぜすべての体型が別々の表にあるのですか?これは正規化ルールに従っているようです。一度に複数のボディタイプをクエリする必要がないため、クエリも高速化するはずです。

それは可能ですか、それとも再考する必要がありますか?ボディタイプについて別のテーブルを作成し、すべての車を組み合わせる必要がありますか?最大100万のエントリ(すべてのボディタイプを組み合わせたもの)が必要です。書き込みよりも読み取りの方がはるかに多くなるでしょう。

2
Oscar

サブタイプSedan、SUVなどのスーパータイプエンティティCarBodyを作成し、すべての一般情報をそのスーパータイプに移動します。あなたのM-M関係はCarBodyとFeatureの間になります。データモデリングのサブタイプについては、このトピックを参照してください スーパータイプ/サブタイプのカテゴリ間の決定:完全なバラバラまたは不完全なオーバーラップ

4
Serg