目前的情况是,主题按3个主要类别排序。有可能增加的不仅仅是3个类别,而是更高层希望实现为一个主题添加不止1个类别的能力。我应该创建另一个表还是仅使用数组? (规范化或不规范化)
我的原始数据库设计在主题信息表中具有categoryID作为外键。从一开始,这可能是一个糟糕的主意,但我想他们只设置了3个类别,并且这样做会减少查询次数。
因此,从我所看到的我现在有两个选项: 1)输入categoryID作为一个逗号分隔的字符串,我解析的PHP结束。 2)重新构造数据库并将categoryID拉出到它自己的categoryID和topicID表中。
我想知道每个人都认为这是什么。我的第一本能是重组数据库。但是当我考虑这个问题时,第一个选择是实现最简单,并且最不可能通过改变数据库来打破现有的问题。这也可能导致不规范化,并且会导致数据不一致的可能性。
我已经阅读了解除归一化问题,只要您接受以不一致的数据换取性能的风险即可。在您看来,我会因此风险而获得很多业绩吗?对于我在这种情况下应该做的任何投入将不胜感激。
感谢您的帮助,
列维
所有的优点,你的第三个关于是不可扩展的是我最初用我的数据库设计进入这个问题。 – Levi 2009-10-29 03:03:03
+1此外,执行各种聚合查询更困难,例如对列表中的值进行计数,求和或平均。 – 2009-10-29 03:03:04