# 评论表设计
什么是二级评论
- 只有对话题的评论占楼(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
可以省去关联查询。
← MySQL笔记