如何在Mysql中关联表

时间:2014-10-10 08:00:52

标签: mysql relational-database

我正在制作一个音乐下载网站。在这里有三个名为song_tbl,artist_tbl,album_tbl的表 Song_tbl
enter image description here

Artist_tbl
enter image description here

Album_tbl
enter image description here

每首歌都有一位艺术家。但问题是有些歌曲有不止一个艺术家(例如:song2可能有两个艺术家= petersn和艺术家3)。那我怎么能管理呢。谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您需要有一张表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列

答案 1 :(得分:1)

artist_id中删除song_tbl列,然后添加一个名为song_artists_tbl的新表

song_artists_tbl
----------------
song_id
artist_id

它被称为1-n关系。

示例数据将是

song_id  |  artist_id
1        |  1
1        |  2

答案 2 :(得分:1)

您使用链接表的多对多关系。

最终得到的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