多个值一个字段mysql

时间:2010-04-28 11:03:02

标签: mysql

基本上我有一个我要创建的mysql数据库,其中包含以下表格:

  • 艺术家
  • 专辑

一首歌只能属于一位艺人,但是,一首歌可能属于多张专辑。我将如何在我的mysql数据库中实现它。我已经被困了几天了:(

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

您将使用交叉表。例如:

艺术家:

  • 艺术家ID(主键)
  • 艺术家姓名

曲:

  • 歌曲ID(主键)
  • 艺术家ID(外键)
  • 歌曲名称

专辑:

  • 相册ID(主键)
  • 专辑名称

AlbumSongs

  • AlbumID(外键)
  • SongID(外键)
相关问题