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

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

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

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

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

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

相关文章

基于PHP编程注意事项的小结

 1、php隐性的三元操作符(?:)优先级问题: 例1:复制代码 代码如下:    $person = $who or $person = "la...

php安全之直接用$获取值而不$_GET 字符转义

复制代码 代码如下: <? function my_addslashes($string, $force = 0) { !defined('MAGIC_QUOTES_GPC') &...

linux使用crontab实现PHP执行计划定时任务

linux使用crontab实现PHP执行计划定时任务

首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool...

PHP 抓取网页图片并且另存为的实现代码

下面是源代码,及其相关解释 复制代码 代码如下: <?php //URL是远程的完整图片地址,不能为空, $filename 是另存为的图片名字 //默认把图片放在以此脚本相同的目...

PHP生成树的方法

PHP生成树的方法

本文实例讲述了PHP生成树的方法。分享给大家供大家参考。具体如下: 这个类不是我写的 只添加了getAll()函数 php生成一个树,可以用于产品分类 不知道遍历写的是否优化,如果你...