一般系统发展到一定时候,就会需要加上评论功能。评论也会有很多形式,不同形式的评论展示表的设计也不一样。这里介绍几种比较常见的评论。
1、一问一答
张三:文章写的不错。
作者 回复 张三:谢谢你的认可
这种评论是比较简单的,满足了基本的评论。
字段名 | 类型 | 注释 |
---|---|---|
id | bigint(64) | 主键 |
target_type | varchar(20) | 目标类型:具体对哪个业务评论 |
target_id | bigint(64) | 目标id:具体哪个业务对应id |
content | varchar(1024) | 评论内容 |
from_user_id | bigint(64) | 评论用户id |
to_user_id | bigint(64) | 评论目标用户id |
create_time | datetime | 创建时间 |
del_flag | char(1) | 删除标记 1:删除;0:未删除 |
如果是评论某个业务,那么to_user_id可以为空;
如果是对评论进行回复,那么to_user_id是目标用户id,from_user_id是评论用户id;
可以根据to_user_id是否为空来判断是评论业务还是回复评论;
target_type,target_id:主要是可以评论不同业务模块,你的这套评论可以适用各种业务。
2、评论回复评论
不光可以评论业务,还可以对评论进行评论
张三:文章很的可以
李四 回复 张三:你的名字很low
张三 回复 李四:你找事情
像这种评论为主的功能,你可以设计两个表,也可以设计一个表,
(1)、两个表的方案:
评论表:
字段名 | 类型 | 注释 |
---|---|---|
id | bigint(64) | 主键 |
target_type | varchar(20) | 目标类型:具体对哪个业务评论 |
target_id | bigint(64) | 目标id:具体哪个业务对应id |
content | varchar(1024) | 评论内容 |
from_user_id | bigint(64) | 评论用户id |
create_time | datetime | 创建时间 |
del_flag | char(1) | 删除标记 1:删除;0:未删除 |
说明:这里只记录对业务功能的评论。
评论回复表:
字段名 | 类型 | 注释 |
---|---|---|
id | bigint(64) | 主键 |
comment_id | bigint(64) | 评论表id |
content | varchar(1024) | 评论内容 |
from_user_id | bigint(64) | 评论用户id |
to_user_id | bigint(64) | 评论目标用户id |
create_time | datetime | 创建时间 |
del_flag | char(1) | 删除标记 1:删除;0:未删除 |
说明:如果需要对评论的评论在进行回复,那么可以加一个parent_id,表示评论回复表id。
(2)、一个表
字段名 | 类型 | 注释 |
---|---|---|
id | bigint(64) | 主键 |
parent_id | bigint(64) | 父类id,大于0时为评论的回复 |
target_type | varchar(20) | 目标类型:具体对哪个业务评论 |
target_id | bigint(64) | 目标id:具体哪个业务对应id |
content | varchar(1024) | 评论内容 |
from_user_id | bigint(64) | 评论用户id |
to_user_id | bigint(64) | 评论目标用户id,parent_id为0的时候该值也为0 |
create_time | datetime | 创建时间 |
del_flag | char(1) | 删除标记 1:删除;0:未删除 |
说明:一张表搞定评论、评论的回复;
当评论业务的时候,to_user_id为0;
当回复评论的时候,to_user_id为目标用户id;
到这里几种常见的评论表设计完成了。每个系统的功能不一样,你可以根据自己的需求进行调整。
本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载