欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-11 18:57:55
...

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

数据库结构如下

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

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

正常的输出效果应该是
javascript - 请问评论系统的层级数据结构要怎么取最合适?

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

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

回复内容:

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

数据库结构如下

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

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

正常的输出效果应该是
javascript - 请问评论系统的层级数据结构要怎么取最合适?

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

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

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

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

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

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