1-1关系和3NF之间是否存在冲突?
例如,请采用下表:
客户表:
CustomerID (Primary Key)
CustomerFirstname
CustomerLastname
CustomerLoginID
CustomerLoginPW
现在让我们假设每个CustomerID
只对应一个CustomerLoginID
,反之亦然。所以这是一种1-1关系。
据说通常,1-1关系已经标准化,不需要标准化。
但是CustomerLoginPW
可以由CustomerID
确定,但也可以由CustomerLoginID
确定。这打破了3NF,即传递依赖。
因此,如果将上表分成两个表,将CustomerLoginID
和CustomerLoginPW
放入一个单独的表中,即使关系是1-1?
如同很多人建议的那样,将它留在一张桌子中,似乎打破了3NF?
答案 0 :(得分:1)
如果任何非素数属性(即不是候选键的一部分的属性)依赖于候选键,则关系在3NF中(对于3NF的定义重要的是候选键,而不是主键)。由于CustomerID
和CustomerLoginID
都是候选键,因此它们确定了彼此和所有其他属性,因此没有违反3NF的依赖项。
因此,您不需要拆分表,因为关系已标准化。