我看到书上说database minimizes data redundancy, 还有databases store raw data。以论坛系统为例,每张帖子下都有数条回复,那么是否应该把帖子回复数作为字段存入帖子表?这样好像等于是有冗余了,如果不用那个字段,那么就得再用count()查一次回复表,这样貌似性能损失较大,请问正确做法是怎样?

解决方案 »

  1.   

    设计数据库的原则就是先画出ER图,然后满足第三范式,也就是没有这种冗余。 然后再根据性能要求,添加必要的冗余字段以满足查询速度上的要求。如果你的论坛不大,中小型,则不需要这个计数字段。 通过在回复记录上帖子ID的索引即可。
    如果是超大论坛,则再考虑这种冗余。