分析网易跟帖盖楼的数据库存储结构

如果你的项目或网站想添加评论功能,有很多免费的第三方评论插件可以使用,比如:网易云跟帖、来必力,Disqus等等,设置也简单。但是如果你自己想设计一个评论系统,或者想研究研究它的数据库存储结构,那你就可以看看我这篇博文,如果有什么不对之处,欢迎指正,一同学习。

找个文明的网易跟帖截图不容易啊,不文明的发言实在是太多了,文明发言的又很少盖楼,自己无功而返,只能参考一下这位仁兄(jia_zhengshen)找的图片,盖楼效果如下:

分析网易跟帖盖楼的数据库存储结构_第1张图片
image

从上图直观分析,我第一时间想到的是两个表,user表(用户表)和comment表(评论表)。是想在comment表增加一个它所回复的comment字段,但这样实现比较麻烦,参考了网上一些资料,发现将数据库设计成三个表比较简单,分别是user表、comment表、floor表(楼层表)。现在,我直接通过浏览器Chrome调试,选择Network点击JS选择此网址,可以看到如下图示:

分析网易跟帖盖楼的数据库存储结构_第2张图片
image

上图是json的getData(),可以看到有commentIds、comments和newListSize三个字段。
打开commets中的其中一个,可以看见如下图示:

分析网易跟帖盖楼的数据库存储结构_第3张图片
image

我们可以根据详情字段推断出这是一个comment表的数据,里面的user字段关联了user表。

  • comment表(评论表):comment_id - 主键、comment(评论内容)、user(用户Id)-外键 等
  • user表(用户表):user_id-主键、nickname(昵称)、location、avatar(头像)等

分析网易跟帖盖楼的数据库存储结构_第4张图片
image

根据commentIds的详细内容可以推测出这是一个floor表(楼层表),我们可以看见上图左上角数字25(楼层)所对应的一串数字(comment_id),黄色圈出的是第25楼的第一楼,白色是第25楼的楼中第二楼,红色圈出的是第25楼的楼中第三楼。第25楼不是第一张图片盖楼效果所示,只是恰好前三楼和它一样。楼层表顺序存放commet_id。

  • floor表:floor_id-主键、commet_id-外键

总结

通过浏览器Debug,可以看出网易更贴使用了3个表来存放跟帖的数据。但上面博文只是大概了解了存储结构,还要研究一下怎样优化!这篇博文断断续续写了几天,效率太低!PS:真希望每个人在网络发言的时候都能理性,文明。

参考网址

  • 网易评论盖楼的数据结构

图片网址

  • 新闻网址:http://news.163.com/17/0707/11/COO4L6820001899O.html
  • 新闻跟帖网址:http://comment.news.163.com/news2_bbs/COO4L6820001899O.html

你可能感兴趣的:(分析网易跟帖盖楼的数据库存储结构)