如何构建DB来存储不同的值

Bor*_*ris 3 mysql

标题可能不是很精确,但这是我想做的,并征求意见

我有两张桌子,一张是献给不同的艺术家,另一张是不同的音乐流派.最后的想法是为一位艺术家分配一种或多种类型.

我正在考虑使用tbl_genre.ID并将其存储在tbl_artist.genre中,但这不起作用(使用LIKE %%在tbl_artist中搜索特定类型时可能出现问题).

另一种选择可能是创建第3个表并将所有与艺术家相关的类型ID存储在一个单独的行中,但不知何故,这个解决方案看起来"蹩脚",我想知道是否有更好的.

谢谢.

rwi*_*ams 5

这是一种非常典型的多对多关系.类型有许多艺术家和艺术家可以有很多类型.您需要使用第三个"连接"表来完成此操作.我会称它为tbl_artists_genres,它只有两个字段,artist_id和genre_id.

  • @Boris:***"在数据库列中存储逗号分隔的列表真的那么糟糕吗?"***:http://stackoverflow.com/questions/3653462/is-storing-a-comma-separated-list- IN-A-数据库列真的,那坏 (3认同)