2010-04-28 82 views
2

基本上我有AA的MySQL數據庫,我想創建一個包含以下表:多值一個領域的MySQL

  • 藝術家
  • 歌曲
  • 專輯

一首歌可以屬於只有一位藝術家,但是,一首歌可能在多張專輯中。我將如何去實現這個在我的mysql數據庫。我一直在堅持,現在幾天:(

+0

您到目前爲止嘗試過什麼?你創建了一些表嗎?他們有什麼專欄? – 2010-04-28 11:05:35

回答

4

你正在尋找一個join table

albumsong 
    album  -> FOREIGN KEY to album 
    song  -> FOREIGN KEY to song 
    tracknumber 

然後加入查詢:

SELECT song.*, albumsong.tracknumber 
FROM albumsong 
JOIN song ON song.id=albumsong.song 
WHERE albumsong.album=(some album id) 
ORDER BY tracknumber; 

由於一些專輯是合作,你也可能有藝術家/專輯的多對多關係:

artistalbum 
    artist  -> FOREIGN KEY to artist 
    album  -> FOREIGN KEY to album 
+0

謝謝你這幫了很多 – chloe 2010-04-28 11:25:27

2

您會使用int ersection表。例如:

藝術家:

  • 藝術家ID(主鍵)
  • 藝人名稱

曲:

  • 樂曲ID(主鍵)
  • 藝術家ID(外鍵)
  • 歌曲名稱

專輯:

  • 相冊ID(主鍵)
  • 專輯名稱

AlbumSongs

  • ALBUMID(外鍵)
  • SongID(外鍵)
+0

謝謝你這個 – chloe 2010-04-28 11:27:15