我正在设计一个数据库,我碰到一个地方,我不确定哪个是最好的设计,所以我决定在这里得到一些输入。数据库设计:很多丑陋的列,或者分成若干行
的问题是,我对列的数据的几个重复件,沿
第1页的行:
aName, aSize, aColor
bName, bSize, bColor
cName, cSize, cColor
第2页:
aName, aSize, aColor
bName, bSize, bColor
cName, cSize, cColor
等
所以我可以有这样的设计:
[pageId] [aName] [aSize] [aColor] [bName] [bSize] [bColor] etc.
或者,而后者显得更加干净它拆分成排
[pageId] [letter] [name] [size] [color]
前者获得更好的性能。有没有比这两种方案更好地解决问题的方法?我正在使用PHP和MySQL,但我对任何解决方案都感兴趣,不管平台如何。
“显得更干净”?你应该阅读规范化并修改你的问题。 http://en.wikipedia.org/wiki/Database_normalization – 2010-08-18 18:09:02
我知道正常化。我在这里没有重复数据的问题(对不起,如果我不清楚)。每个页面上有相同类型的数据(名称,大小,颜色)的固定数量的部分(a,b,c等),但都可以在一行中无冗余地存储。在多行中,行可以由该部分标识并直接访问各个属性,而不必重复添加列名。这就是我所说的“更干净”。 – 2010-08-18 18:11:34
重复数据是违反第一范式。请更新您的问题,以表明您**知道** First Normal Form的含义。 – 2010-08-18 18:20:42