【数据库】评论回复表设计

star2017 1年前 ⋅ 1456 阅读

一般系统发展到一定时候,就会需要加上评论功能。评论也会有很多形式,不同形式的评论展示表的设计也不一样。这里介绍几种比较常见的评论。

1、一问一答

张三:文章写的不错。
作者 回复 张三:谢谢你的认可

这种评论是比较简单的,满足了基本的评论。

字段名类型注释
idbigint(64)主键
target_typevarchar(20)目标类型:具体对哪个业务评论
target_idbigint(64)目标id:具体哪个业务对应id
contentvarchar(1024)评论内容
from_user_idbigint(64)评论用户id
to_user_idbigint(64)评论目标用户id
create_timedatetime创建时间
del_flagchar(1)删除标记 1:删除;0:未删除

如果是评论某个业务,那么to_user_id可以为空;
如果是对评论进行回复,那么to_user_id是目标用户id,from_user_id是评论用户id;
可以根据to_user_id是否为空来判断是评论业务还是回复评论;
target_type,target_id:主要是可以评论不同业务模块,你的这套评论可以适用各种业务。

2、评论回复评论
不光可以评论业务,还可以对评论进行评论

张三:文章很的可以
李四 回复 张三:你的名字很low
张三 回复 李四:你找事情

像这种评论为主的功能,你可以设计两个表,也可以设计一个表,
(1)、两个表的方案:
评论表:

字段名类型注释
idbigint(64)主键
target_typevarchar(20)目标类型:具体对哪个业务评论
target_idbigint(64)目标id:具体哪个业务对应id
contentvarchar(1024)评论内容
from_user_idbigint(64)评论用户id
create_timedatetime创建时间
del_flagchar(1)删除标记 1:删除;0:未删除

说明:这里只记录对业务功能的评论。

评论回复表:

字段名类型注释
idbigint(64)主键
comment_idbigint(64)评论表id
contentvarchar(1024)评论内容
from_user_idbigint(64)评论用户id
to_user_idbigint(64)评论目标用户id
create_timedatetime创建时间
del_flagchar(1)删除标记 1:删除;0:未删除

说明:如果需要对评论的评论在进行回复,那么可以加一个parent_id,表示评论回复表id。

(2)、一个表

字段名类型注释
idbigint(64)主键
parent_idbigint(64)父类id,大于0时为评论的回复
target_typevarchar(20)目标类型:具体对哪个业务评论
target_idbigint(64)目标id:具体哪个业务对应id
contentvarchar(1024)评论内容
from_user_idbigint(64)评论用户id
to_user_idbigint(64)评论目标用户id,parent_id为0的时候该值也为0
create_timedatetime创建时间
del_flagchar(1)删除标记 1:删除;0:未删除

说明:一张表搞定评论、评论的回复;
当评论业务的时候,to_user_id为0;
当回复评论的时候,to_user_id为目标用户id;

到这里几种常见的评论表设计完成了。每个系统的功能不一样,你可以根据自己的需求进行调整。

本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: