美好的一天-

我正在执行必须根据以下信息创建数据模型的任务。


  您的任务是创建用于存储以下内容的模型
  信息:专辑列表和
      每个专辑的专辑封面(图像文件),一个专辑的曲目,乐队的一个或多个唱片公司标签,
      风格和乐队成员。


到目前为止,我已经创建了五个表。我必须介绍Normalization部分,但我对此感到困惑。我创建的表之一包含以下列和数据。

乐队成员


bandMemberId-自动递增
bandladelId-FK
真正的名字
昵称
会员电话
memberRole
memberActive
会员
会员年龄


到目前为止,此表包含以下数据。

mysql - 2NF数据库规范化-LMLPHP

为了解决这个问题,我删除了逗号分隔的值,并为数据添加了每一行。现在看起来像这样。

mysql - 2NF数据库规范化-LMLPHP

有人可以指导我如何拆分该表并消除此问题(如果存在标准化)?因为我在这里也对主键感到困惑。 Internet上引用的示例基于“年龄”列。但我没有得到这些例子。提前致谢。

最佳答案

您将具有多值属性的行拆分为多行的步骤几乎就像解析重复组以达到1NF的步骤。但是,在该转换中,每个新行都将获得原始行中相应值的副本。您的自动增量列为新行增加了,因此第二个表是一个不同的问题,而不是第一个表的1NF版本。

将转换为1NF的第一个表包含2行,它们的bandMemberId值均为1,并且使用(bandMemberId, memberRole)作为候选键。由于所有非素数属性仅依赖于bandMemberId,因此属于部分依赖关系。将(bandMemberId, memberRole)复制到单独的表中并从memberRole表中删除bandMember将提供2NF模式。您没有提供任何功能依赖性,因此我不确定该架构是否也位于3NF中。

关于mysql - 2NF数据库规范化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36727404/

10-12 23:49
查看更多