Here我发现了这一点:

该定义也不适用于候选键吗?

最佳答案

据我了解,如果表未完全标准化,则行列式可能不是候选键。实际上,在描述将非正常数据转换为更有用的,标准化形式的过程时,使用了行列式一词。

考虑这个(显然是非正常的)表:

CREATE TABLE US_Address (
  AddressID int,
  Streetline varchar(80),
  City varchar(80),
  State char(2),
  ZIP char(5),
  StateName varchar(80),
  StateTax DECIMAL(5,2)
)

状态是StateName和StateTax的决定因素,但不是该行的候选键。
正确的规范化将因此将StateName和StateTax从US_Address表中移出,并移到一个States表中。

有关更多信息,请参见here

10-05 18:09