gpt4 book ai didi

database-design - 如果我们使用自动递增的身份列和 PK,则违反 3NF

转载 作者:行者123 更新时间:2023-12-04 07:02:19 24 4
gpt4 key购买 nike

正如 Thomas Connolly 和 Carolyn Begg 合着的数据库解决方案第二版第 180 页所说:

Third normal form (3NF)
A table that is already in 1NF and 2NF, and in which the values in all non-primary-key columns can be worked out from only the primary key column(s) and no other columns.

我见过许多情况,人们使用标识列,尽管他们的表中已经有一个主键列。一条记录也可以从标识列中得到,那么如果我们在表中使用一个自增标识列和一个主键,这不是违反了 3NF 吗?

更新:如果不是这样,哪个列应该被引用为另一个表中的外键。主键列还是标识列?

最佳答案

没有。 3NF 定义的“官方”措辞通常使用术语“主要属性”或“非主要属性”。如果你的书建议这意味着“主键的属性”,那么把你的书扔进垃圾箱。这是错误的。 “主要属性”表示“属于任何键的属性”,“非主要属性”表示“不属于任何键的属性” .因此,在关系模式中引入您的“自动增量属性”(以及所有将使其成为键的适用 FD)不可能引入 3NF 违规,因为它不会引入非素数属性。

关于database-design - 如果我们使用自动递增的身份列和 PK,则违反 3NF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48754229/

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