这违反了哪种范式?

时间:2014-11-20 10:28:17

标签: database-design normalization database-normalization

一位同事提出了这个数据库表:

table vatdata (
    storeCode integer,
    returnDate date,
    itemID integer,
    numValue money,
    UNIQUE (storeCode,returnDate,itemID) )

...其中itemID是指示存储值的50个左右数字代码之一。

现在,这是否是一个好主意不是(出于专业和礼貌的原因)我不想在这里讨论。我想问的是,哪种特殊的正常形式会破坏?

我敢肯定它必须打破一个正常的形式,但我不能为我的生活找出哪一个。而且我同样确定我已经看过十几次这样的讨论了,但我完全没有在搜索中对它进行任何讨论。


编辑:功能依赖:

每家商店每天都要输入十几个左右的价值。每个值都存储在numValue中,值的性质由itemID(外键)标识。

所以似乎numValue在功能上依赖于其他三个字段 - 除非我遗漏了“功能依赖”一词的某些技术性

1 个答案:

答案 0 :(得分:1)

因为它是一个关键加一个单一属性,所以设计满足6NF。

由于当前没有超过6的NF,因此根本没有违反正常形式。

不要歪曲这个也暗示它是一个好的设计(已经指出了EAV链接)。