评论设计 - 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的话,这表示这条回复的父回复。