2011-01-12 6 views
0

2つのテーブルA &があります。それぞれの列の長さは10です。 表Aには、他の表に対するFKとして8列あります。表Bは、FKなしの列挙型と標準列挙型を使用しています。データベースの結合/ FK - 基本的な質問

  • ではどのテーブルがより高速で/より優れていますか?
  • 私はテーブルA、 で任意のアクションを行う場合、私は私が唯一の私があまりにもアクションに関連していますし、 iは唯一の1 FKのcolunmを必要とする場合でも、すべての10のFKテーブル に参加する必要はありませんcolunms に触れていると仮定?書き込み、更新または値を削除するよう
  • 私は がFK上の任意のアクションを実行する必要がない場合は、 、 は私が親 テーブルに参加する必要がありますか?
  • 私が正しく理解していれば、私は その後、テーブルから ディスプレイ2つのテキストに必要な場合、私は内部を使用する必要があるため、 EAVモデルが展開 colunmテーブルよりも優れているがEAVテーブルのため colunmテーブルのために参加します私は は、結合なしでのみ通常の選択を使用できますか?ほんの数値について

答えて

0
  1. と値の量が変化しない場合は、ENUMは速くなり、より少ないスペースを取ることができます。しかし、後から可能な値を追加するには、テーブル全体を変更する必要があります。これは良い設計ではありません。ほとんどの場合、表Aはより良いオプションです。

  2. オフコースでは、必要なテーブルだけをテーブルAに参加させます。

  3. いいえ、PKを変更しない限り、値を含む表を変更することはできます。ただし、PKの変更が頻繁に必要とされないような方法でテーブルを設計する必要があります - 人工PKを使用してください(自動インクリメントは完璧です)。国が存在しなくなったり、名前が変わったりします...

  4. いいえ、あなたのEAVには参加が必要です。しかし、キーへの参加は非常に高速です...これは、リレーショナルデータベースのすべてについてです。それは彼らの強みです。

+0

私はまだcolunmテーブルとの結合が必要ですか?私はid、category_id、parent_idのような列を持つカテゴリとサブカテゴリのようなテーブルを探しています。だから私はいつも親権の複数のサブカテゴリを取得するために参加する必要がありますか? – BrianJ