我正在建立一个数据库,其中包括艺术家,专辑和歌曲。我有一张桌子供艺术家(艺术家),专辑(专辑)和歌曲(歌曲)使用。专辑表具有艺术家的外键,即artist_id,因此我不必一遍又一遍地写下艺术家的名字。

现在我要添加歌曲。我将相册的标签值导出到csv文件中。这些我导入到mysql中。这是歌曲表,其中包括:标题,艺术家名称,专辑名称,时间。

现在,我希望将歌曲链接到相应的专辑。因此,歌曲中的专辑名称为专辑中的专辑名称。据我所知,外键需要int,我不知道如何链接它们。在专辑中有album_id,但是不能包含在歌曲中,如果我想手动将它们放入,那会花费很多时间。

最佳答案

我认为您应该重构songs表并将artist_name替换为artist_id,将album_name替换为ablum_id,它们分别对artistsalbums表具有外键约束

另一种查看方式是:

albums表本质上是artistssongs之间的连接表。您可以调用表artists_songs来反映这种关系。

在这种情况下,联结表应同时具有artist_idsong_id

所以关系将是


artists有很多albums(或artists_songs),通过songs有很多albums
albums有很多songs,属于artists
songs属于albums,通过artists属于albums

10-08 17:31