php discuz 主题表和回帖表的设计
作者:bea
以下内容仅摘录部分:如果由我们来设计主题表和回帖表,通常的做法是如下。 这样在获取主题列表时,直接使用分页算法提取Topics;查看某一帖子时,还需要对Topics,Posts进行jion链接。 此种设计的缺陷为: 1. Topics表存储Content的内容,其体积将会很大,对大体积表进行分页,性能很慢。 2. 显示Posts内容时将进行join操作,损耗性能 而Discuz的做法是进行如下设计。 将Topics里的Content拆分到Posts中去,同时Topics的主题
以下内容仅摘录部分:
如果由我们来设计主题表和回帖表,通常的做法是如下。
这样在获取主题列表时,直接使用分页算法提取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 Http_Template_IT类库进行模板替换
- php auth_http类库进行身份效验
- php db类库进行数据库操作
- PHP Pear 安装及使用
- php 什么是PEAR?(第三篇)
- php 什么是PEAR?(第二篇)
- php 什么是PEAR?
- php 信息采集程序代码
- php mysql 留言本应用实例
- php cookie 登录验证示例代码
- php 删除cookie和浏览器重定向
- php cookis创建实现代码
- php session应用实例 登录验证
- php session处理的定制
- php session 检测和注销
- php session 预定义数组
- php 无限级缓存的类的扩展
- 解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
- PHP 文件类型判断代码