我正在尝试设计一个数据库。我有一张表如下:
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。所以我肯定在某个地方出了问题。
答案 0 :(得分:2)
根据您的描述,您应该将该表分解为2个表来模拟"帖子和标签"和"文件和标签" 之间的一对多关系p>
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
通常情况与您在问题中描述的情况相同。
这里也是一个有用的问题: