1

我正在设计一个数据库来存储有关音乐的元数据。
例如,我将存储以下数据:

歌曲:一年无雨
专辑:一年无雨
艺术家 : Selena Gomez & the Scene
作曲:琳迪·罗宾斯、托比·加德

...进入这 5 个表:

歌曲:song_ID、songTitle、album_ID、artist_ID、composer_IDs
专辑:album_ID、albumTitle
艺术家:artist_ID、artistName、performer_IDs
表演者:performer_ID、performerName
作曲家:composer_ID、composerName

问题是,对于给定的歌曲 (song_ID),可能有一个或多个与之关联的作曲家 (composer_IDs)。乐队 (artist_ID) 中的成员数 (performer_ID) 也是如此。

我不想使用数组或逗号分隔值在这些列中存储多个值。我该如何解决这个问题?

我已经阅读了这个答案,但我不知道如何用这个设计来实现它。任何帮助,将不胜感激。

4

2 回答 2

3

创建另一个名为 的表Song_Composer,其中包含两列:Song_IDcomposer_ID。然后,您可以通过添加具有相同歌曲 ID 的行来将任意数量的作曲家与每首歌曲关联起来

于 2013-10-18T19:32:50.090 回答
1

更改表结构并添加两个表SongsComposers&ArtistsPerformers

歌曲:song_ID、songTitle、album_ID、artist_ID

作曲家:composer_ID、composerName

SongsComposers :song_ID,composer_ID

艺术家:artist_ID,artistName

表演者:performer_ID、performerName

ArtistsPerformers :artist_ID,performer_ID

于 2013-10-18T19:39:04.017 回答