二级评论表的数据库设计

什么是二级评论

  • 只有对话题的评论占楼(2、3 ... 楼),评论挂在话题下面
  • 其余的为对评论(各楼层)的回复,或对回复的回复,这些统一按时间排序,挂在对话题的评论下面

二级评论数据表设计

评论表(tbl_comment)设计如下:

表字段 字段说明
id 主键
topic_id 话题 id
topic_type 话题类型
content 评论内容
from_uid 评论用户 id

回复表(tbl_reply)设计如下:

表字段 字段说明
id 主键
comment_id 评论 id
reply_id 回复目标 id
reply_type 回复类型
content 回复内容
from_uid 回复用户 id
to_uid 目标用户 id

回复表添加了一个 comment_id 字段来表示该回复挂在的根评论 id,这样设计也是出于性能方面的考虑,我们可以直接通过评论 id 一次性的找出该评论下的所有回复,然后通过程序来编排回复的显示结构。 通过适当的冗余来提高性能也是常用的优化手段之一。

reply_type:表示回复的类型,因为回复可以是针对评论的回复(comment),也可以是针对回复的回复(reply), 通过这个字段来区分两种情景。

reply_id:表示回复目标的 id,如果 reply_type 是 comment 的话,那么 reply_id = commit_id,如果 reply_type 是 reply 的话,这表示这条回复的父回复。

由于二级评论一般是 “A @ B” 的形式,所以存下 from_uid 和 to_uid 可以省去关联查询。

PS

多级评论表也是同一个设计,不过要嵌套比较深,一般没有那个必要。现在网上最常见的还是二级评论。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口阅读 16,156评论 0 16
  • 前言 本文参考转发摘自:【郭霖博客】http://blog.csdn.net/guolin_blog?viewmo...
    _猜火车_阅读 6,147评论 0 10
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,853评论 18 399
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,148评论 0 19
  • 窗前春色惜缠绵 朱砂轻点青莲尖 螓首微倾悄不语 粉靥含羞教人怜
    水知泪阅读 377评论 0 1

友情链接更多精彩内容