一位同事提出了这个数据库表:
table vatdata (
storeCode integer,
returnDate date,
itemID integer,
numValue money,
UNIQUE (storeCode,returnDate,itemID) )
...其中itemID是指示存储值的50个左右数字代码之一。
现在,这是否是一个好主意不是(出于专业和礼貌的原因)我不想在这里讨论。我想问的是,哪种特殊的正常形式会破坏?
我敢肯定它必须打破一个正常的形式,但我不能为我的生活找出哪一个。而且我同样确定我已经看过十几次这样的讨论了,但我完全没有在搜索中对它进行任何讨论。
编辑:功能依赖:
每家商店每天都要输入十几个左右的价值。每个值都存储在numValue
中,值的性质由itemID
(外键)标识。
所以似乎numValue
在功能上依赖于其他三个字段 - 除非我遗漏了“功能依赖”一词的某些技术性
答案 0 :(得分:1)
因为它是一个关键加一个单一属性,所以设计满足6NF。
由于当前没有超过6的NF,因此根本没有违反正常形式。
不要歪曲这个也暗示它是一个好的设计(已经指出了EAV链接)。