php discuz 主题表和回帖表的设计
2009-03-13 00:00
316 查看
以下内容仅摘录部分:
如果由我们来设计主题表和回帖表,通常的做法是如下。
这样在获取主题列表时,直接使用分页算法提取Topics;查看某一帖子时,还需要对Topics,Posts进行jion链接。
此种设计的缺陷为:
1. Topics表存储Content的内容,其体积将会很大,对大体积表进行分页,性能很慢。
2. 显示Posts内容时将进行join操作,损耗性能
而Discuz的做法是进行如下设计。
将Topics里的Content拆分到Posts中去,同时Topics的主题帖也作为回帖放置到Posts里面,这样就解决了上面我们提出的两个问题。这是典型的违反数据库设计范式以换取更好性能的示例。
如果由我们来设计主题表和回帖表,通常的做法是如下。
这样在获取主题列表时,直接使用分页算法提取Topics;查看某一帖子时,还需要对Topics,Posts进行jion链接。
此种设计的缺陷为:
1. Topics表存储Content的内容,其体积将会很大,对大体积表进行分页,性能很慢。
2. 显示Posts内容时将进行join操作,损耗性能
而Discuz的做法是进行如下设计。
将Topics里的Content拆分到Posts中去,同时Topics的主题帖也作为回帖放置到Posts里面,这样就解决了上面我们提出的两个问题。这是典型的违反数据库设计范式以换取更好性能的示例。
相关文章推荐
- php discuz 主题表和回帖表的设计
- Discuz!教程之通过简单php文件实现修改主题发帖时间
- Discuz!教程之通过简单php文件实现修改主题浏览量
- PHP设计模式(三),工厂方法模式
- PHP设计模式之组合模式
- 学习php设计模式 php实现策略模式(strategy)
- PHP设计模式
- [李景山php] 依赖注入和设计模式
- PHP设计模式
- php设计模式
- 学习php设计模式 php实现抽象工厂模式
- 学习php设计模式 php实现门面模式(Facade)
- PHP设计模式之:单例模式
- PHP设计模式——迭代模式
- 学习php设计模式 php实现合成模式(composite)
- PHP获取Discuz论坛登录用户名、用户组、用户ID等
- discuz 经典php加密解密函数 authcode 解析
- PHP设计模式之-----适配器模式
- php 使用curl模拟登录discuz以及模拟发帖