gpt4 book ai didi

database - 标准化 UNF 到 1NF

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:19 25 4
gpt4 key购买 nike

在规范化具有多值属性的关系时,我们将其分解为具有主键字段和多值属性值的新关系。

我遇到的问题是,新创建的属性的主键是什么?

如果我们使用与新主键相同的旧主键,因为我们用多值属性中的值重复那里的值,我们怎么能在这里的主键字段具有唯一值?

我有一个表格,其中包含客户姓名、他们的爱好等等。有些人有不止一种爱好,所以现在它是一个多值属性。现在,即使我一次只创建与 customer_name 和一个爱好的新关系,我如何添加据说有 3 个爱好的人的详细信息?

最佳答案

当您为新属性创建查找表时,您不会重复查找表中的值。通常您会以 IDENTITY 列的形式添加人工 PK。

例如:您有一个包含一堆地址的表。有许多地址具有共同的城市。

您决定通过创建城市表来规范化。您只能将给定的城市添加到城市表一次。不是每个地址一次。

编辑:在您的评论中描述的场景中,您可以使用 CustomerIDHobbyName 创建一个 Hobbies 表。

CustomerID 将是引用 Customers 表中主键的外键。

编辑 2:正如 Beth 和我在评论中提到的,您似乎想要多对多关系。

创建一个 Hobbies 表,每个唯一的 Hobby 只有一行。如果两个或更多客户有相同的爱好,您仍然只在表中列出一次爱好。使用标识列创建一个 HobbyID 作为主键。

然后创建一个CustomerHobby 表。它有 CustomerIDHobbyID。两者都是外键,分别引用 Customers 表和 Hobbies 表的主键。

就是这样。

关于database - 标准化 UNF 到 1NF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com