0

データベース構造を正規化していますが、適用するインデックスがよくわかりません。私は次の構造を持っています:

プロファイル テーブルには 2 つの列 (profile_id、profile_name)、キーワード テーブルには 2 つの列 (keyword_id、keyword_name)、profiles_keyword テーブルには 2 つの列 (profile_id、keyword_id) があります。

すべての列にインデックスを適用するのは理にかなっていますか? profile_id,keyword_id で PRIMARY COMPOSITE キーを作成する必要がありますか? また、profiles_keyword テーブルに参照キーを追加する必要がありますか?

どちらが最適で、どのキーが他のキーとうまくいかないのかわからない!

ありがとう。

4

3 に答える 3

1

ここでは、2 つの関連する概念がありますが、概念的には別個のものです。

まず、主キーと外部キーという概念があります。これらは概念的なエンティティであり、テーブルの性質とそれらの関係を識別します。たとえば、主キーは「これは、このテーブル内の行を別の行から一意に識別する方法です」と言います。原則として、「鍵」はそれ自体では物理的な存在を持ちません。

キーは多くの場合、インデックスを使用して実装されます。たとえば、主キーには一意のインデックスが必要です。主キーと外部キーにインデックスを適用することをお勧めします。

インデックスは物理的なもので、ハード ドライブ上に存在します。インデックスを使用する理由は 2 つあります。キーに物理的な形状を与えるため (上記を参照)、およびクエリを最適化するためです。たとえば、「profile_name」と「keyword_name」はスキーマのキーではありませんが、検索に必要になる可能性があります。したがって、おそらくこれらの列にインデックスが必要になります。

于 2013-10-06T13:07:40.140 に答える