为了学习MySQL,我建立了一个音乐CD数据库,这个数据非常复杂,但到目前为止,我的表现相当不错。我已经设置了一个包含albums
的表格,另一个包含artists
和album_artists
的表格,其中album_id
与artist_id
相关联'第但是在与各种艺术家合作的专辑中,通常其中一个或一些是主要的艺术家,所以在进行查询时我不应该按字母或id顺序排序,而是按主要或次要排序。问题是:
我应该创建一个secondary_artists
的单独表,与原始album_artists
表相同,还是在isPrimary
表中创建一个布尔album_artists
字段?这两种方式都可以接受吗?
答案 0 :(得分:2)
许多用于记录多个创作者的书目/唱片方案为每个贡献者分配了一个序号。因此,您的album_artist表可以包含
,而不是指示“primary”的标志 album_id artist_id artist_order
所以,如果
你的album_artist表会有这些行。
album_id artist_id artist_order
312 87 1
312 33 2
312 50 3
这将为您提供足够的信息,使艺术家按照作品中提到的顺序(这是大多数目录的正确顺序)。
不要将“二级”艺术家放在不同的表格中。