当前位置:Gxlcms > PHP教程 > javascript-请问评论系统的层级数据结构要怎么取最合适?

javascript-请问评论系统的层级数据结构要怎么取最合适?

时间:2021-07-01 10:21:17 帮助过:3人阅读

我想自己写一个wordpress的评论系统,当然是用wordpress的数据表结构了。
但是在有个地方有点疑惑,就是如何去弄清这个层级。

数据库结构如下

其中id是自动生成的,postid表示评论在哪篇文章,approved表示是否过审(0表示没有),parent表示评论的父级Id(回复评论),content是内容。

正常的输出效果应该是

在这里,我应该如何写php,才可以达到这种效果...我就是脑里没有这种数据结构调用的概念。它的过程

首先肯定是调用这个postid为99的文章,这样数据库的内容就同我的第一个截图一样。
接下来我的想法是想输出层级为0的评论,但是其他的层级什么时候插入呢?

回复内容:

我想自己写一个wordpress的评论系统,当然是用wordpress的数据表结构了。
但是在有个地方有点疑惑,就是如何去弄清这个层级。

数据库结构如下

其中id是自动生成的,postid表示评论在哪篇文章,approved表示是否过审(0表示没有),parent表示评论的父级Id(回复评论),content是内容。

正常的输出效果应该是

在这里,我应该如何写php,才可以达到这种效果...我就是脑里没有这种数据结构调用的概念。它的过程

首先肯定是调用这个postid为99的文章,这样数据库的内容就同我的第一个截图一样。
接下来我的想法是想输出层级为0的评论,但是其他的层级什么时候插入呢?

这不是典型的树结构吗?只是将其压平了存到数组里。
postid是为了让你一个查询就能搞定,不至于分别查一下每个节点
至于怎么插入,如果你打算一次插入的话,这就跟你渲染模板的代码有关了啊,重点还在你的html和css上。

也可以分成两个查询:首先正常渲染页面只有一级评论,然后来一个ajax查询把补充的填进去(百度贴吧)。

但因为涉及分页的问题就比较麻烦了。

像是知乎那样就尽量降低了复杂度,当然知乎是没楼中楼的,只有一个回复XXX,这样的实现就简单许多,而且也不用担心分页了。

人气教程排行