php - 如何存储用户评论信息?

 梦亦碎i 发布于 2022-11-28 14:31

比如像SegmentFault这样的社区,是如何存储用户评论的。评论中回复某人的功能如何实现?

使用mysql的话似乎不难,但是所有评论放在一个表中的话会造成数据量太大,如何分表?

使用nosql,比如Redis存储评论的话该选择哪种数据类型?

4 个回答
  • 1.用redis不太科学,用内存来存大量的评论和回帖不经济,去哪搞那么多内存,存不下啊。

    2.回帖和评论是比较结构化的数据,可以使用关系db存储,分表策略有很多,表特别大以后可以垂直或水平分表。可以按时间,或按访问习惯等等规则分,自行google。

    2022-11-28 15:23 回答
  • 使用redis就可以。新浪微博就完全持久化在redis之上,之前有人分享过它的redis存储方案,可以参考一下。现在是海量数据时代,以空间换时间的思路是主流,数据不必像存在MySQL这样的结构化数据库里那样干净整洁,可以允许一定的冗余。

    2022-11-28 15:23 回答
  • 回复某人如何实现:假设帖子为一个post,评论表comment用post_id关联帖子,用parent_comment_id关联上一级的评论
    数据量我觉得一般情况下是不需要分表的,用post_id做索引,1亿条评论几乎不是问题,如果真要分表,可以考虑按post_id逻辑分表,当然我觉得这样复杂度很高,可以考虑数据库中间件(比如cobar)来实现分库分表,这样业务上是无感知的,另外查询二级评论可能会比较麻烦,建议使用redis等nosql做一层数据缓存。

    2022-11-28 15:23 回答
  • 建议去研究一下开discuz的实现方式

    2022-11-28 15:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有