【问题标题】: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_idalbum_nameablum_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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多