gpt4 book ai didi

mysql - 第一范式和名字和姓氏

转载 作者:行者123 更新时间:2023-12-01 00:27:11 25 4
gpt4 key购买 nike

我试图掌握 1NF,我想知道下表是否是 1NF。我假设不是,因为在列中 first_name、last_name 和 full_name 可以重复,因此需要转移到一个新表,其中有列 user_id 和 first_name、last_name 和 full_name。下图是引用数据库的截图。

http://imgur.com/kerlB

最佳答案

1NF 是关于原子性的,而不是冗余的(这就是高等范式的意义所在)。本质上,如果所有属性都是原子的,那么您的表就是 1NF。

很明显,一个表是否在 1NF 中取决于你定义的“原子”。 “原子性”实际上意味着什么是一个有争议的问题,但我会在这里采取务实的个案方法并简单地问:

在我试图解决的问题的上下文中,访问1值的任何部分是否有意义,或者我总是访问整个值值(value)?

如果我总是访问整体,那么它在特定上下文中是原子的。

在您的示例中,您可能希望分别访问 first_namelast_name,因此 full_name 将是非原子的并且这就是违反 1NF 的原因。但是,如果您知道永远不需要分别访问名字和姓氏,那么您可以 full_name 并且仍然不会违反 1NF。


1 “访问”值在这里应该得到相当广泛的理解。这可能显然意味着从数据库中读取它,但也可能意味着在约束中使用它,或对其建立索引等......

关于mysql - 第一范式和名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504439/

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