最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
网易式评论箱的实现原理分析
时间:2016-06-16 编辑:简简单单 来源:一聚教程网
- 表的设计
- 前端的实现
由于每个回复的展示都需要完整的引用路径,我们需要一个字段来记录本条回复所回复的回复quote_id
,在一个列表中如果每次都递归获取引用的评论,性能上会有很大的瓶颈,所以我们冗余一个字段,记录本条回复的引用路径 quote_path
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;
数据展示流程:
获取最新的10条评论
获取与最新的10条评论相关被引用的评论
组装数据,返回json
Reactjs渲染数据
用伪代码可以表示为如下结构
优化
分库分表
通用计数组件
缓存
静态化
通过查询场景来决定分库分表的策略
根据articleId查询最新的评论
根据articleId 和 commentId更新计数
根据articleId 和 quoteId写入新的评论
展示某个用户(userId)所有的评论
其中有两个分表的路由key articleId 和 userId
-
上一个: slim框架接入pysh的例子
-
下一个: python解决GPS打卡问题解决办法
相关文章
- 一直播如何去掉评论 一直播去掉评论的方法 08-07
- 最右app评论时如何带视频 07-04
- 一直播怎么评论 一直播APP发评论教程 03-25
- 猫眼电影怎么发评论 猫眼电影发表评论的方法 03-14
- 追追漫画怎么添加评论 追追漫画APP添加评论的方法 03-05
- 天天快报怎么评论?天天快报评论方法教程 02-20