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

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

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

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

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

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

相关文章

php实现判断访问来路是否为搜索引擎机器人的方法

本文实例讲述了php实现判断访问来路是否为搜索引擎机器人的方法。分享给大家供大家参考。具体分析如下: 很多时候我们需要对网站访客来路进行识别,针对真实用户与搜索引擎作不同动作实现,那么首...

php上传大文件设置方法

打开php.ini,首先找到 ;;;;;;;;;;;;;;;; ; file uploads ; ;;;;;;;;;;;;;;;; 区域,有影响文件上传的以下几个参数: file...

php新建文件自动编号的思路与实现

要求:在系统中 在新建文件是可以实现自动编号。比如新建文本文件 默认文件名是:新建 文本文档.txt,如果继续新建时文件名自动变了:新建 文本文档 (2).txt, 以后就是 3,4,5...

在php7中MongoDB实现模糊查询的方法详解

前言 在实际开发中, 有不少的场景需要使用到模糊查询, MongoDB shell 模糊查询很简单: db.collection.find({'_id': /^5101/}) 上...

php中动态变量用法实例

本文实例讲述了php中动态变量用法。分享给大家供大家参考。具体分析如下: 定义的固定变量: $my_pic_1=$row["pic_1"]; $my_pic_2=$row["pic_...