营销型企业网站策划方案,企业建站系统费用,创建全国文明城市作文,手机如何制作网址这里的多级#xff0c;本质上其实也就二级#xff0c;例如微博的评论#xff0c;
一级评论#xff1a; 对微博的评论
二级评论#xff1a; 对微博下的评论的回复评论 #xff0c;这里包括二种 1. 回复的是一级评论#xff0c; 2, 回复的是二级评论
效果如下 表数据 查…这里的多级本质上其实也就二级例如微博的评论
一级评论 对微博的评论
二级评论 对微博下的评论的回复评论 这里包括二种 1. 回复的是一级评论 2, 回复的是二级评论
效果如下 表数据 查询文章评论时
SELECT * from comment where article_id 1 and comment_level 1 ORDER BY top_status desc ,create_time desc
结果
1 aaa 张三 1 标题党 1 一级评论(评论文章) 1 0 0 2019-04-26 17:37:48
查看评论下的回复时
SELECT * from comment where parent_comment_id 1 and article_id 1 and comment_level 2 ORDER BY create_time desc
结果
3 aaa 张三 1 标题党 1 aaa 2 bbb 2 回复二级评论 1 0 0 2019-04-26 17:40:04 2 bbb 李四 1 标题党 1 aaa 2 回复一级评论 1 0 0 2019-04-26 17:38:53
上面查询评论都是按照时间 create_time 倒叙如果要改成微博的那种按照热度的 或者点赞量的
只需要把create_time 改成 praise_num
-----------------------------------------------------------------------表结构如下--------------------------------------------------------------------------------------------
id 评论id 可以设置为自增主键 也可设置为uuid user_id 评论人userId user_name 评论人昵称 记录当时评论的时候用户的昵称如果用户昵称修改评论展示也变的话 不需要设置该字段 article_id 在哪篇篇文章下评论的 article_title 文章标题记录当时评论的时候文章标题查看我的评论或者 评论我的时文章动态获取的话 不需要设置该字段 parent_comment_id 父级评论id parent_comment_user_id 父级评论的userid reply_comment_id 被回复的评论id reply_comment_user_id 被回复的评论的userid comment_level 评论级别 回复文章的是一级评论 其它的都是二级评论 content 评论内容 status 评论状态评论被删除了 都是 逻辑删除不会真实删除 praise_num 评论的点赞数量 top_status 评论是否置顶 create_time 评论创建时间 表结构为 CREATE TABLE comment (id varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 评论id,user_id varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 评论人userId,user_name varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT COMMENT 评论人名称,article_id varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 评论的文章id,article_title varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT COMMENT 评论的文章标题,parent_comment_id varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT COMMENT 父评论id,parent_comment_user_id varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT COMMENT 父评论的用户id,reply_comment_id varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT COMMENT 被回复的评论id,reply_comment_user_id varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT COMMENT 被回复的评论用户id,comment_level tinyint(4) NOT NULL DEFAULT 1 COMMENT 评论等级[ 1 一级评论 默认 2 二级评论],content varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT COMMENT 评论的内容,status tinyint(4) NOT NULL DEFAULT 1 COMMENT 状态 (1 有效0 逻辑删除),praise_num int(11) NOT NULL DEFAULT 0 COMMENT 点赞数,top_status tinyint(4) NOT NULL DEFAULT 0 COMMENT 置顶状态[ 1 置顶0 不置顶 默认 ],create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,PRIMARY KEY (id),KEY idx_article_id (article_id) USING BTREE,KEY idx_user_id (user_id) USING BTREE,KEY idx_create_time (create_time),KEY idx_parent_comment_id (parent_comment_id) USING BTREE
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci COMMENT文章评论表; 1. 编码设置为 utf8mb4 是为了支持 emoji 标签
2. id 根据需求可以设置为自增 或者 uuid
3. user_name 字段 和 article_name 字段 根据需要来是否设置为表字段。如果为表字段 就不用连表查询但是 记录的都是当时评论的时候的用户名和 文章标题。 好在用户昵称和文章标题变化 但是 对应的 id 是不变的也可以关联查询到。
4. 文章id 用户id 创建时间父评论id 设置索引 在查询时都能有效利用索引
5. 评论删除功能其实都不是 真实物理删除只是设置不可见支持消息中心以及 我的评论