- 时间:2022-08-07 23:58 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:php discuz 主题表和回帖表的设计
以下内容仅摘录部分:
如果由我们来设计主题表和回帖表,通常的做法是如下。
[img]http://files.jb51.net/upload/20090313001406928.gif[/img]
这样在获取主题列表时,直接使用分页算法提取Topics;查看某一帖子时,还需要对Topics,Posts进行jion链接。
此种设计的缺陷为:
1. Topics表存储Content的内容,其体积将会很大,对大体积表进行分页,性能很慢。
2. 显示Posts内容时将进行join操作,损耗性能
而Discuz的做法是进行如下设计。
[img]http://files.jb51.net/upload/20090313001406526.gif[/img]
将Topics里的Content拆分到Posts中去,同时Topics的主题帖也作为回帖放置到Posts里面,这样就解决了上面我们提出的两个问题。这是典型的违反数据库设计范式以换取更好性能的示例。