php discuz 主题表和回帖表的设计

yipeiwu_com6年前PHP代码库
以下内容仅摘录部分:
如果由我们来设计主题表和回帖表,通常的做法是如下。

       这样在获取主题列表时,直接使用分页算法提取Topics;查看某一帖子时,还需要对Topics,Posts进行jion链接。

此种设计的缺陷为:
1. Topics表存储Content的内容,其体积将会很大,对大体积表进行分页,性能很慢。
2. 显示Posts内容时将进行join操作,损耗性能

而Discuz的做法是进行如下设计。

       将Topics里的Content拆分到Posts中去,同时Topics的主题帖也作为回帖放置到Posts里面,这样就解决了上面我们提出的两个问题。这是典型的违反数据库设计范式以换取更好性能的示例。

相关文章

PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)

register_globals的值可以设置为:On或者Off,我们举一段代码来分别描述它们的不同。 代码: 复制代码 代码如下: <form name="frmTest" id=...

PHP跨时区(UTC时间)应用解决方案

1.将程序内部时区设置为UTC时间.(UTC 也可以叫 GMT) PHP设置: date_default_timezone_set("UTC"); Yii设置: config/main....

Linux下PHP加速器APC的安装与配置笔记

当前我用的是APC-3.1.9 stable ,可以自己到 http://pecl.php.net/package/APC 下载最新版。 1、安装 复制代码 代码如下: wget htt...

phplock(php进程锁) v1.0 beta1

在web开发中我们经常对我们的数据库耗时操作做缓存,但是可能出现一个陷阱,在缓存失效的一瞬间,大量的访问得到缓存失效的标示,都去后端查询数据库,导致同时大量的数据库耗时查询,出现数据库宕...

PHP自定义函数格式化json数据示例

本文实例讲述了PHP自定义函数格式化json数据的方法。分享给大家供大家参考,具体如下: <?php /** * Formats a JSON string...