Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 如何为一个列设计具有一对一或一对多关系的数据库?_Database Design_One To Many_Relationship_One To One - Fatal编程技术网

Database design 如何为一个列设计具有一对一或一对多关系的数据库?

Database design 如何为一个列设计具有一对一或一对多关系的数据库?,database-design,one-to-many,relationship,one-to-one,Database Design,One To Many,Relationship,One To One,我正在设计一个数据库来存储有关音乐的元数据。 例如,我将存储以下数据: Song : A Year Without Rain Album : A Year Without Rain Artist : Selena Gomez & the Scene Composers : Lindy Robbins, Toby Gad 歌:没有雨的一年 专辑:没有雨的一年 艺术家:赛琳娜·戈麦斯与现场 作曲家:林迪·罗宾斯、托比·盖德 …分为以下5个表: Songs : son

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

Song : A Year Without Rain Album : A Year Without Rain Artist : Selena Gomez & the Scene Composers : Lindy Robbins, Toby Gad 歌:没有雨的一年 专辑:没有雨的一年 艺术家:赛琳娜·戈麦斯与现场 作曲家:林迪·罗宾斯、托比·盖德 …分为以下5个表:

Songs : song_ID, songTitle, album_ID, artist_ID, composer_IDs Albums : album_ID, albumTitle Artists : artist_ID, artistName, performer_IDs Performers : performer_ID, performerName Composers : composer_ID, composerName 歌曲:歌曲ID、歌曲标题、专辑ID、艺术家ID、作曲家ID 相册:相册ID、相册标题 艺术家:艺术家ID、艺术家姓名、表演者ID 表演者:表演者ID,表演者姓名 作曲家:作曲家ID,作曲家姓名 问题是,对于给定的歌曲(song_ID),可能有一个或多个作曲家(composer_ID)与之关联。乐队成员(表演者ID)的数量(艺术家ID)也是如此

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


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

创建另一个名为
Song\u Composer
的表,其中包含两列:
Song\u ID
Composer\u ID
。然后,通过添加具有相同歌曲ID的行,您可以将任意多个作曲家与每首歌曲关联起来,创建另一个名为
song\u Composer
的表,该表包含两列:
song\u ID
Composer\u ID
。然后,通过添加具有相同歌曲ID的行,您可以将任意多个作曲家与每首歌曲关联起来。更改表结构,并添加两个表
歌曲合成者
&
艺术家合成者

歌曲:歌曲ID、歌曲标题、专辑ID、艺术家ID

作曲家:作曲家ID,作曲家姓名

歌曲合成者:歌曲ID、作曲家ID

艺人:艺人ID,艺人姓名

表演者:表演者ID,表演者姓名

艺人表演者:艺人、表演者


更改表格结构,同时添加两个表格
SongsComposers
ArtistsPerformers

歌曲:歌曲ID、歌曲标题、专辑ID、艺术家ID

作曲家:作曲家ID,作曲家姓名

歌曲合成者:歌曲ID、作曲家ID

艺人:艺人ID,艺人姓名

表演者:表演者ID,表演者姓名

艺人表演者:艺人、表演者


这就是你链接的问题中的多对多关系。谢谢!这正是我想要的。对不起,这个愚蠢的问题。我想我不是真的想得很清楚。这几乎就是你链接的问题上的多对多关系。谢谢!这正是我想要的。对不起,这个愚蠢的问题。我想我不是真的想得很清楚。你的问题听起来很像。是的,这和这个问题很相似,让事情变得更清楚了。再次感谢你指点我。你的问题听起来很像。是的,这和这个问题很相似,让事情变得更清楚了。再次感谢您指点我。这正是@squeamish ossifrage建议的。谢谢你的意见。这正是@squemish ossifrage的建议。也感谢您的投入。