我正在製作一個音樂下載網站。在這裏有三個名爲song_tbl,artist_tbl,album_tbl的表。
Song_tbl
如何在Mysql中關聯表格
Artist_tbl
Album_tbl
的每首歌曲的藝術家。但問題是,有些歌曲有不止一個藝術家(例如:歌曲2可能有兩個藝術家=彼得森和藝術家3)。那我該如何管理呢?謝謝你的幫助。
我正在製作一個音樂下載網站。在這裏有三個名爲song_tbl,artist_tbl,album_tbl的表。
Song_tbl
如何在Mysql中關聯表格
Artist_tbl
Album_tbl
的每首歌曲的藝術家。但問題是,有些歌曲有不止一個藝術家(例如:歌曲2可能有兩個藝術家=彼得森和藝術家3)。那我該如何管理呢?謝謝你的幫助。
您需要有一張表song_artist_tbl將歌曲鏈接到藝術家。它應該有2列:song_id和artist_id,然後,如果歌曲2鏈接到藝術家2和3,您有:
song_artist_tbl
song_id artist_id
2 2
2 3
然後你可以從song_tbl表中刪除artist_id列
您使用一個多對多的關係用一個鏈接表。
你最終得到一個只包含引用表的鍵的song_artist表。
實施例:
song_tbl: song_id album_id ...
album_tbl: album_id ...
artist_tbl: artist_id ...
artist_song_tbl: song_id artist_id
有了這個設置,你可以有一首歌曲,許多藝術家在播放它。
對於進一步閱讀: http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php
謝謝@先生macanuga幫助我。 – shiv 2014-10-10 08:36:58
這看起來像一個M到N的關係,所以你必須創建一個SongID表Song_Artist和ArtistID爲外鍵。 – Patrick 2014-10-10 08:12:25
意味着我必須創建第四張表Song_Artist,我不需要刪除artist_tbl? – shiv 2014-10-10 08:18:39
是的,多數民衆贊成在藝術家表中,您擁有所有藝術家,在歌曲歌曲和Song_Artist_Tbl中只有歌曲和藝術家之間的關係,所以您可以讓歌曲2由歌手1演唱,下一首歌曲2是由藝術家xy唱歌。 – Patrick 2014-10-10 08:22:36