向此表添加信息会使其丢失3NF

时间:2014-04-08 17:58:46

标签: mysql database postgresql normalization

下表来自教程,其中表格为第3范式。但是如果我将信息插入表PROJECT中,如下所示:

projectCode  projectDescr  customerNo

1            Apples        21

1            Apples        22

我是不是因为2个客户可能拥有相同的项目而失去了3NF,因为项目代码和项目结果重复了?

所以我的问题是下图中的表格是否在3NF。以上问题是否存在或者我错误地看待它?我正在建立自己的桌子,但在此之前,我正试图让3NF理解正确。请帮忙。感谢。

教程中的表格:

enter image description here

1 个答案:

答案 0 :(得分:0)

示例中的假设是PROJECT和CUSTOMER之间的关系是多对一的。客户可能有多个项目,但每个项目仅适用于一个客户。如果您希望项目应用于多个客户,那么您需要拆分另一个project_customer表,该表只包含每行的项目和客户密钥。