TL; DR:その多くのテーブル間に多対多の関係を設定するにはどうすればよいですか?
私の「スキーマ」からわかるように、各車にはいくつかの機能がありますが、featuresテーブルをいくつかの車体タイプテーブル(多対多の関係)に接続する必要があります。私は数日間それについて考えましたが、私はまだこれを達成する方法がわかりません。
なぜすべての体型が別々の表にあるのですか?これは正規化ルールに従っているようです。一度に複数のボディタイプをクエリする必要がないため、クエリも高速化するはずです。
それは可能ですか、それとも再考する必要がありますか?ボディタイプについて別のテーブルを作成し、すべての車を組み合わせる必要がありますか?最大100万のエントリ(すべてのボディタイプを組み合わせたもの)が必要です。書き込みよりも読み取りの方がはるかに多くなるでしょう。
サブタイプSedan、SUVなどのスーパータイプエンティティCarBodyを作成し、すべての一般情報をそのスーパータイプに移動します。あなたのM-M関係はCarBodyとFeatureの間になります。データモデリングのサブタイプについては、このトピックを参照してください スーパータイプ/サブタイプのカテゴリ間の決定:完全なバラバラまたは不完全なオーバーラップ 。