Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 网易式评论箱的实现原理分析

网易式评论箱的实现原理分析

发布时间:2016-09-28   编辑:www.jquerycn.cn
jquery中文网为您提供网易式评论箱的实现原理分析等资源,欢迎您收藏本站,我们将为您提供最新的网易式评论箱的实现原理分析资源
网易式评论箱的实现是许多站长非常想做到的一个东西了,今天我们来看看网易式评论箱的实现原理吧,具体的如下所示。
预览
QQ20160416-0.png
实现
基础
<ol> <li>表的设计</li> <li>前端的实现</li> </ol>

由于每个回复的展示都需要完整的引用路径,我们需要一个字段来记录本条回复所回复的回复<code>quote_id</code>,在一个列表中如果每次都递归获取引用的评论,性能上会有很大的瓶颈,所以我们冗余一个字段,记录本条回复的引用路径 <code>quote_path</code>

<code>CREATE TABLE `pre_comments` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `article_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `quote_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `quote_path` varchar(255) NOT NULL DEFAULT '',
  `user_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `username` char(15) NOT NULL DEFAULT '',
  `content` varchar(1024) NOT NULL,
  `up` bigint(20) NOT NULL DEFAULT '0',
  `down` bigint(20) NOT NULL DEFAULT '0',
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `deleted_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_article_id` (`article_id`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

<code>数据展示流程:</code>

<code>
获取最新的10条评论
获取与最新的10条评论相关被引用的评论
组装数据,返回json
Reactjs渲染数据</code>

<code>Untitled.png</code>

用伪代码可以表示为如下结构

<CommentBox>
  <CommentList>
    <CommentItem>
      <CommentQuote>
        <CommentQuote>
          <CommentToolBar>
            <CommentForm></CommentForm>
          </CommentToolBar>
        </CommentQuote>
        <CommentToolBar>
          <CommentForm></CommentForm>
        </CommentToolBar>
      </CommentQuote>
      <CommentToolBar>
        <CommentForm></CommentForm>
      </CommentToolBar>
    </CommentItem>
  </CommentList>
  <CommentForm></CommentForm>
</CommentBox>

优化

分库分表
通用计数组件
缓存
静态化
通过查询场景来决定分库分表的策略

根据articleId查询最新的评论
根据articleId 和 commentId更新计数
根据articleId 和 quoteId写入新的评论
展示某个用户(userId)所有的评论
其中有两个分表的路由key articleId 和 userId

您可能感兴趣的文章:
网易式评论箱的实现原理分析
使用PHP简单实现类似“畅言”等评论系统
JQuery 解析多维的Json数据格式
python怎么做大数据分析
Python3爬虫实战:Appium mitmdump 爬取京东商品
如何提高E-mail收发的成功率
Google TrustRank及其影响因素分析
jquery解析多维Json格式数据的例子
php 序列化数组的例子
Python爬虫带你了解网友们对周董新歌《说好不哭》的看法

[关闭]