评论设计 - swiftdo/vapor-blog GitHub Wiki

一个文章下面可以有评论,其他人可以对评论进行回复,还可以对回复进行回复。但是对回复的回复一般无论回复多少层,都是并列显示的,只不过引用被回复的内容。

这种结构不完全是树形结构,基本上只有上下两级,一级评论,二级回复。

评论表设计

表字段 说明
id 主键
topic_id 主题id
topic_type 主题类型
content 评论内容
from_uid 评论用户id
created_time 创建时间
updated_time 更新时间

回复表设计

表字段 说明
id 主键
comment_id 评论id
target_id 回复目标id
target_type 回复目标类型
content 回复内容
from_uid 回复用户id
to_uid 目标用户id
created_time 创建时间
updated_time 更新时间

​comment_id​​字段来表示该回复挂在的根评论id,我们可以直接通过评论id一次性的捞出该评论下的所有回复。

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

​target_id​​表示回复目标的id,如果target_type是comment的话,那么target_id=commit_id,如果target_type是reply的话,这表示这条回复的父回复。