Database design 这看起来像是一个正确的数据库设计吗?

Database design 这看起来像是一个正确的数据库设计吗?,database-design,relational-database,database-schema,Database Design,Relational Database,Database Schema,我已经工作了几个星期,试图阅读设计一个合适的数据库结构的所有细节。经过多次尝试,我想我可能得到了被认为是正确的东西。但我怀疑我是否正确设置了连接表和外键。我正在处理的数据库由几个关系组成,这些关系都围绕着一首歌的标题。链接的图像是我目前拥有的。这个看起来对吗 每首歌可以有多种颜色 一种颜色只能有一组值 每个颜色值只有一组dmx值 每个颜色值只有一组百分比值 每首歌只能有一种情绪 每个情绪可以应用于多首歌曲 每首歌只能有一次签名 每次签名都可以应用于多首歌曲 每首歌只能有一种安排 每个排列可以应用

我已经工作了几个星期,试图阅读设计一个合适的数据库结构的所有细节。经过多次尝试,我想我可能得到了被认为是正确的东西。但我怀疑我是否正确设置了连接表和外键。我正在处理的数据库由几个关系组成,这些关系都围绕着一首歌的标题。链接的图像是我目前拥有的。这个看起来对吗

每首歌可以有多种颜色

一种颜色只能有一组值

每个颜色值只有一组dmx值

每个颜色值只有一组百分比值

每首歌只能有一种情绪

每个情绪可以应用于多首歌曲

每首歌只能有一次签名

每次签名都可以应用于多首歌曲

每首歌只能有一种安排

每个排列可以应用于多首歌曲

每首歌只能有一个节奏

每个节奏可以应用于多首歌曲

每首歌只能有一个消防提示

每个fire_提示可应用于多首歌曲

一首歌可以有多个mp3文件

每个mp3只能属于一首歌曲

一首歌可以有多个img文件

每个img只能属于一首歌

设计数据库没有正确或正确的方法。您在这里所拥有的看起来是经过深思熟虑的,可以作为一种根据您的需要设计数据库的方法。比回答这是否是一个正确的数据库设计(任何人都可以给出他们的意见,而且他们都可能有所不同)更重要的是,数据库是否适用于基础设施的设计


你是打算使用这个数据库还是只是在摆弄ERD和设计?如果您打算使用它,您可能会发现您的复杂性可能太高。您可能会发现您“创建”的关系不需要存在(甚至整个表或实体也不需要存在)。很难回答你的问题,因为在回答中你只会得到意见。我认为,开始编写程序、编写查询并调用存储在数据库中的信息,以真正了解数据库设计是否理想,这对您来说非常重要

这可能是一种方法。当然还有其他的。他们都不是“对”或“错”。有时候,唯一的方法就是建造一些东西,看看它有多好。天哪。您可能至少可以删除这些表中的1/3(可能更多)。问:“时间信号”的哪一部分(例如)不是特定“歌曲”的固有属性?时间信号、情绪、安排、火线和节奏都是具有设定值的表格。所以节奏基本上是一个不变的静态表格,但我需要一种方法来确定歌曲的节奏。或者是第一部分。Nb X has-a Y是一个微不足道的、可怜的、不充分的、未被充分解释的关系&不是你需要的。表表示n参数应用程序关系。线表示这些和/或约束的投影。PS:常量关系也可以作为布尔函数(例如X>Y)或函数(例如sin(X))进行访问(尤其是在大的时候)。PPS:@FoggyDay的意思是,为什么不唱首歌?标题时间?签名瓦尔查尔(45)?这是我正在积极尝试的事情。我的挫折在于学习如何在数据库中组织事物。我的原始表单将有一个表,上面的每个值都在一行中。我被告知这是低效的,在我执行CRUD操作时为重复/错误留出了空间。所以我研究了正常形式,现在我在这里试图弄清楚我做的事情是否正确。你可能是对的,我正在建立不必要的关系。我正试图找出那些效率低下的地方。