私は1つの質問を考えており、いつも私たちの日常生活の中で起こっています。 たとえば、私はtable1に20の列、table2には30の列、table3には40の列があります。しかし、1,2,3の表には共通の10の列があります。共通の属性を持つSQLテーブルについて
いくつかの例では、これをコンテキストに入れています。
ペットショップには、犬、猫、金魚などのデータがあります。すべてのペットは名前、価格、取得日などがありますが、ペットの種類には他の種類の属性はありません。
車両に関するデータベースには、自動車、トラック(ローリー)、オートバイに関するデータがあります。彼らはすべて車両識別番号、登録番号、製造年を持っています。しかし、彼らはそれぞれ独自の属性も持っています。
顧客に関するデータベースには、顧客である企業および顧客である個人に関するデータがあります。彼らはどちらも電話番号を持っていますが、属性もそれぞれ異なります。
だから、DB構造のための共鳴するデザインは何ですか?
A:20,30,40列の3つのテーブルを作成しますか? B:10,20,30列の3つのテーブルと10の共通列を持つ別のテーブルを作成する場合は、共通のテーブルの共通情報に参加する必要があります
このパフォーマンスを分析するには質問? SQLの作業原則について知りませんが、いくつかの調査を行います。 誰もがデザインと異なるパフォーマンスに関するあなたのアイデアを共有することができます
[DBA Exchange](https://dba.stackexchange.com/help/on-topic)でクエリのパフォーマンスについて質問する必要があります。 – F0XS
条件を追加する列にインデックスを追加する必要があります –
これはあまりにも広い質問です。トランザクションの状況では、複製/冗長列を正規化する方がよいでしょう。しかし、必ずしもそうではありませんが、モデルがこれらの3つのテーブルを最初に持っている理由に依存します。おそらく、さまざまな制約が存在します。分析的な状況では、キャッシングの種類として分離しておく方が良いかもしれません。また、3つのデータセットがすべて同じテーブルにあるように正規化する方が良いため、SQLを書くのがはるかに簡単です。したがって、コンテキストなしでは、それは... *** – MatBailie