这张桌子是4NF吗?

时间:2014-03-21 00:51:29

标签: database

我正在尝试设计一个数据库。我有一张表如下:

Tag     Post     File
A        a         1
A        a         2
A        a         3
A        b         4
B        a         1
B        b         1
B        c         1
B        d         1

每个帖子可能有多个标签,每个文件可能有多个标签。除了标签,帖子和文件是无关的。显然,仅从查看表中就会出现冗余问题,例如后标签对A-a不必要地重复3次,与后文件对B-1相同。不过,我已经看过1NF到4NF的定义,而且似乎在所有这些定义中。

我错过了什么?

我认为如果一张桌子有裁员,那么它就没有正常化了。但它确实似乎正常化到4NF。所以我肯定在某个地方出了问题。

1 个答案:

答案 0 :(得分:2)

根据您的描述,您应该将该表分解为2个表来模拟"帖子和标签"和"文件和标签"

POST   TAG
a       A
b       A
a       B
b       B
c       B
d       B


FILE   TAG
1       a
2       a
3       a
4       b
1       b
1       c
1       d

看看这里的第一个例子:

http://en.wikipedia.org/wiki/Fourth_normal_form

通常情况与您在问题中描述的情况相同。

这里也是一个有用的问题:

Database Normalization