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

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

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

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

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

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

相关文章

PHP基于curl post实现发送url及相关中文乱码问题解决方法

本文实例讲述了PHP基于curl post实现发送url及相关中文乱码问题解决方法。分享给大家供大家参考,具体如下: 这个问题困扰我几天了,发送的指定网址的url参数,中文总是乱码,指定...

php中将数组转成字符串并保存到数据库中的函数代码

复制代码 代码如下:/** * 将字符串转换为数组 * * @param    string  $data   字符串 * @...

PHP合并数组+号和array_merge的区别

PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别: 1.相加会证数组中的自然index不被重置 2.相加方法中,...

Linux环境下php实现给网站截图的方法

本文实例讲述了Linux环境下php实现给网站截图的方法。分享给大家供大家参考,具体如下: 第一步:下载wkhtmltopdf 复制代码 代码如下:[root@iZ94aawoublZ...

PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】

PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】

本文实例讲述了PHP+Ajax实现的无刷新分页功能。分享给大家供大家参考,具体如下: 注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带...