2011-12-20 76 views
-1

我想知道是否有某種方法可以將兩個索引合併爲第三個以使序列號排序......例如: 如果我想創建音樂數據庫 我會從表格藝術家開始與 -artist_name -artist_id(主鍵) -....MySQL將兩個索引合併爲一個

然後用 -album_name -album_id(PK)表的專輯 -...

再表歌曲 - song_title -song_id

比方說,藝術家將X具有artist_id - 12345 然後專輯Y中album_id - 678 我想song_id是12345.678.xxx(只爲理念的可視化,artist_id和album_id的長度會點是不變的)

我的問題是。有可能嗎? 因爲我有一種感覺,這將通過數據庫執行更好的搜索。 不僅在我的song_id中我有完整的藝術家和專輯信息(我不需要使用外鍵),它應該加快任何關於來自同一專輯或同一個藝術家的其他專輯的歌曲的查詢。一個索引中的所有信息只需要某種提取。

或者,也許它只是我最小的關於MySQL的知識? :)

+0

好吧,我會在起跑時刺傷,儘管我不能100%明白你在這個位置上的位置。您可以將字段組合到兩個索引或主鍵(這實際上是一個專門的索引)。但規範化數據結構的想法是保持數據庫的大小很小,並且有助於維護,而不是減少對外鍵的依賴。因此,當王子再次更改姓名時,您希望能夠更新Artist表中的單個記錄,而不是更新artist_album_song表中的1000條記錄。 – 2011-12-20 22:35:53

+0

您是否真的指MySQL的意義上的「索引」?看起來好像你還沒有創建任何實際定義藝術家,歌曲和專輯之間關係的表格。這些對於使用關係數據庫至關重要。您確實需要閱讀如何正確設計數據庫的數據模型。 – Poodlehat 2011-12-20 22:37:17

+0

其實我並不完全確定我要去哪裏,但說實話..如果王子將改變他的名字,已經在市場上的專輯將永遠不會改變名稱:) – cyvvilek 2011-12-20 22:38:09

回答

0

將artists_id和album_id保留爲歌曲表中的單獨列,幷包含正確的外鍵關係和索引。這將爲您提供數據完整性和查詢性能的最佳組合。

+0

:)我害怕我是神志不清... :) – cyvvilek 2011-12-20 22:45:33