网易评论盖楼的数据结构

来源:互联网 发布:日本食玩淘宝网 编辑:程序博客网 时间:2024/04/28 02:03

最近在写一个给app添加评论的功能,发现不太好写,有种解决方案是采用第三方的评论插件,我感觉比较low,没有采纳。于是参考其他网站的评论功能。


网易的评论的盖楼相当酷炫,网上也有很多实现其的盖楼功能的方法,我认为不太正确,于是写了这篇文章。

我监听了网易的页面跟 服务器通信的json文件。

1.新闻的地址:http://news.163.com/17/0627/09/CNU65GI80001875N.html

2.评论的地址http://comment.news.163.com/news_guonei8_bbs/CNU65GI80001875N.html

3.评论的json路径

http://comment.news.163.com/api/v1/products/a2869674571f77b5a0867c3d71db5856/threads/CNU65GI80001875N/comments/newList?offset=0&limit=30&showLevelThreshold=72&headLimit=1&tailLimit=2&callback=getData&ibc=newspc&_=1498551699911

提取后的json包含两个字段:commentids和comments

commentids用来存放每楼的评论的所有的id,如下图所示。


comments是一个map,key是评论的id。value是对应的评论的数据,里面包含用户的信息,ip,用户id等等信息,不再具体分析 。如下图所示。


那么根据这些信息。如何做到楼中楼呢?详见下图


由此猜想数据库中应该是评论的内容和楼层是分开存放的

comment是一个表,用来存放具体的评论。

floor是一个表用来存放楼层,每个楼层中包含所有按顺序排列的评论的id





原创粉丝点击