【问题标题】:Mysql link table columns varcharMysql 链接表列 varchar
【发布时间】:2013-10-28 22:57:35
【问题描述】:
我正在创建一个包含艺术家、专辑和歌曲的数据库。我有一张用于艺术家(艺术家)、专辑(专辑)和歌曲(歌曲)的桌子。专辑表有一个来自艺术家的外键,artist_id,所以我不必一遍又一遍地写艺术家的名字。
现在我想添加歌曲。我将相册的标签值导出到 csv 文件。这些我导入mysql。那是歌曲表,它包括:标题、艺术家名称、专辑名称、时间。
现在我希望将歌曲链接到相应的专辑。所以歌曲中的专辑名称列是专辑中的专辑名称。我不知道如何链接它们,据我所知外键需要 int。专辑中有album_id,但歌曲中不能包含,如果我愿意,我必须手动放入它们,这需要很多时间。
【问题讨论】:
标签:
mysql
hyperlink
foreign-keys
varchar
【解决方案1】:
我认为你应该重构你的songs 表并将artist_name 替换为artist_id 和album_name 用ablum_id,它们分别对artists 和albums 表有一个外键约束
另一种看待方式是:
albums 表本质上是artists 和songs 之间的联结表。您可以调用表 artists_songs 来反映这种关系。
在这种情况下,您的联结表应该同时具有artist_id 和song_id。
所以关系会是
-
artists 有很多 albums(或 artists_songs),有很多 songs 通过 albums
-
albums有很多songs,属于artists
-
songs 属于albums,属于artists 通过albums