2011-12-20 15 views
-1

2つのインデックスを3つめにしてシリアル番号を並べ替える方法があるのでしょうか?たとえば: 音楽データベースを作成する場合は、テーブルアーティスト -artist_name -artist_id(主キー)と -....MySQLは2つのインデックスを1つに結合します

その後 -album_name -album_id(PK)を持つテーブルアルバム -...

そして とテーブルの歌 - song_title -song_id

のは、アーティストがartist_idでXになりましょう - のみのアイデアを視覚化するための12345.678.xxx(ドット、artist_idとalbum_idの長さにsong_idう678 そして、私が欲しい - album_idとアルバムYその後12345 一定であること)

私の質問です。可能なものはありますか? これはデータベースを使って検索する方がはるかに優れていると感じています。 私のsong_idにはアーティストとアルバムの完全な情報があります(私は外部キーを使う必要はありません)だけでなく、同じアーティストまたは同じアーティストの同じアルバムからの曲の検索を高速化するはずです。 1つのインデックスにすべての情報があり、それはある種類の抽出だけを必要とします。

多分MySQLについてのちょっとした知識がありませんか? :)

+0

私は100%理解していませんが、これでやってみようとしていますが、始めに刺すようにします。しかし、正規化されたデータ構造の考え方は、DBのサイズを小さく保ち、メンテナンスに役立ち、外部キーへの依存を減らすことではありません。したがってPrinceが自分の名前を変更したときは、artist_album_songテーブルの1000レコードではなく、Artistテーブルの単一のレコードを更新できるようにしたいと考えています。 –

+0

MySQLの意味で「インデックス」を意味していますか?実際にアーティスト、曲、アルバムの関係を定義するテーブルを作成していないようです。これらは、リレーショナルデータベースの使用に不可欠です。データベースのデータモデルを正しく設計する方法については、実際に読む必要があります。 – Poodlehat

+0

実際に私はどこに行くのか分かりませんが、正直です。王子が名前を変えたら、すでに市場に出ているアルバムは決して変わることはありません:) – cyvvilek

答えて

0

songs_idとalbum_idをソングテーブルに別々の列として保存し、適切な外部キーの関係とインデックスを含めます。これにより、データの整合性とクエリのパフォーマンスを最適に組み合わせることができます。

+0

:)私は恐れていましたそれと間違っている... :) – cyvvilek

関連する問題