0

我正在制作一个包含艺术家、专辑和歌曲的数据库。我有一张用于艺术家(艺术家)、专辑(专辑)和歌曲(歌曲)的桌子。专辑表有一个来自艺术家的外键,artist_id,所以我不必一遍又一遍地写艺术家的名字。

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

现在我希望将歌曲链接到相应的专辑。所以歌曲中的专辑名称列是专辑中的专辑名称。我不知道如何链接它们,据我所知外键需要 int。在专辑中有album_id,但不能包含在歌曲中,如果我愿意,我必须手动将它们放入,这需要很多时间。

4

1 回答 1

0

我认为您应该重构您的songs表并替换artist_nameartist_idalbum_name,它们分别对和表ablum_id有外键约束artistsalbums

另一种看待的方式是:

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

在这种情况下,您的连接表应该同时具有artist_idsong_id

所以关系将是

  1. artists有很多albums(或artists_songs),有很多songs通过albums
  2. albums有很多songs,属于artists
  3. songs属于albums,属于artists通过albums
于 2013-10-20T13:19:55.817 回答