是应该使用布尔字段还是单独的表?

时间:2015-05-10 01:34:52

标签: mysql database

为了学习MySQL,我建立了一个音乐CD数据库,这个数据非常复杂,但到目前为止,我的表现相当不错。我已经设置了一个包含albums的表格,另一个包含artistsalbum_artists的表格,其中album_idartist_id相关联'第但是在与各种艺术家合作的专辑中,通常其中一个或一些是主要的艺术家,所以在进行查询时我不应该按字母或id顺序排序,而是按主要或次要排序。问题是:
我应该创建一个secondary_artists的单独表,与原始album_artists表相同,还是在isPrimary表中创建一个布尔album_artists字段?这两种方式都可以接受吗?

1 个答案:

答案 0 :(得分:2)

许多用于记录多个创作者的书目/唱片方案为每个贡献者分配了一个序号。因此,您的album_artist表可以包含

,而不是指示“primary”的标志
      album_id artist_id artist_order

所以,如果

  • “Daylight Again”有album_id 314,
  • David Crosby有artist_id 87,
  • Steven Stills有艺术家ID 33,
  • Graham Nash的艺术家编号为50,

你的album_artist表会有这些行。

album_id  artist_id artist_order
  312        87         1
  312        33         2
  312        50         3

这将为您提供足够的信息,使艺术家按照作品中提到的顺序(这是大多数目录的正确顺序)。

不要将“二级”艺术家放在不同的表格中。