小编sta*_*kno的帖子

使用复合键是否违反 2NF?

从我遇到的所有与数据库相关的参考书中,有一个通用规则是数据库表应该至少为 3NF。

据我了解,如果表满足 1NF 并且具有单列主键,则该表被认为是 2NF。如果我错了,请纠正我。

所以我不明白为什么有这么多的争论,特别是对于关联 M:N 表的实体;例如:

一个Product_Customer表,列:

  • CustomerProductID
  • CustomerID
  • ProductID

有人说主键 ( CustomerProductID) 不是必需的,应该使用复合键 ( CustomerID, ProductID) 代替。

但这是否违反了表格的通用规则,因为使用复合键甚至不能满足 2NF 的要求,至少应该有 3NF?

如果我错了,请纠正我,尤其是我理解如果表有复合键的部分,它将不在 2NF 中。

normalization database-design relational-theory

4
推荐指数
1
解决办法
2631
查看次数