0

レコード コレクション データベースを構築しています。タイトル、アーティスト、フォーマット、国、日付、レーベルなどを含むメインのリリース テーブルがあります。これらはそれぞれ、リリースに接続された外部キーを持つ個別のテーブルになります。私の質問は、個別のテーブル内のすべての外部キーがリリースの 1 つの主キー (id) に接続するのか、それともリリースの対応するインデックス整数キーにそれぞれ接続するのかということです。インデックスについて言えば、検索される上記のすべてに個別のインデックスを作成する必要がありますか?

ありがとう

4

1 に答える 1

1

あなたが提供した情報を考えると、次のテーブル構造になります

リリース

ID、タイトル、ArtistID、FormatID、CountryID、Date、LabelID

アーティスト ID (Release テーブルの ArtistID への外部キー)、名前など

フォーマット ID (Release テーブルの FormatID への外部キー)、名前など

など

検索される上記のすべてに個別のインデックスを作成する必要がありますか?

テーブルの検索方法によって異なります

編集:

各テーブルの各外部キーは、プライマリ ID ではなく、Release テーブルの独自の ID に接続されますね。

丁度。ArtistID は、ID が主キーである Artists テーブルに接続しますが、Releases テーブルでは外部キーです。日付を除く残りのフィールドについても同じ考えです。

検索に関しては、たとえば、そのアーティストのリリースに接続する必要があるアーティストを検索します (テーブルには名、姓、またはグループ名が含まれます)。

次に、ArtistFirstName フィールドと ArtistLastName フィールドにインデックスを作成します。これらは Artists テーブルのフィールドであり、検索対象になります。アーティストのリリースを表示したい場合は、ArtistID の Artists テーブルと Releases テーブルに参加する必要があります (検索後に取得されます)。

リレーショナル データベースの設計と正規化について詳しくお読みいただければ、役に立ちます。

于 2012-09-11T20:26:30.343 に答える