美文网首页
简单的回帖评论设计

简单的回帖评论设计

作者: sowork | 来源:发表于2017-10-09 23:33 被阅读79次

    实现类似QQ空间,微信聊天风格的回帖评论

    2. sql表设计


    CREATE TABLE `comments` (

            `comment_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

            `theme_id` INT(10) UNSIGNED NOT NULL,

            `user_id` INT(10) UNSIGNED NOT NULL,

            `to_user_id` INT(10) UNSIGNED NOT NULL,

            `pid` INT(10) UNSIGNED NOT NULL,

            `num_like` INT(10) UNSIGNED NOT NULL,

            `commentable_id` INT(10) UNSIGNED NOT NULL,

            `commentable_type` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci',

            `is_del` TINYINT(4) NOT NULL,

            `created_at` TIMESTAMP NULL DEFAULT NULL,

            `updated_at` TIMESTAMP NULL DEFAULT NULL,

            PRIMARY KEY (`comment_id`)

    )

            COLLATE='utf8mb4_unicode_ci'

            ENGINE=MyISAM;


    3. 数据表介绍

    comment_id 评论ID 主键 自增ID

    theme_id 主题ID

    user_id 发布评论的用户ID

    to_user_id 回复用户的ID

    pid 评论的父ID

    num_like 点赞数

    commentable_id 来源表ID

    commentable_type 来源表

    is_del 是否删除


    关联关系:帖子下面有评论,一级评论算一个主题,二级、三级等。。算主题的普通评论

    theme_id 和 pid 关系

    当用户发布评论级别(level)为一时,theme_id和pid默认为0

    当用户针对别的用户的评论(A)进行评论生成评论(B)时,

          评论(B)pid为A评论的comment_id

          评论(B)theme_id为A评论的theme_id,如果theme_id为0,那么为A评论的comment_id

    4. 查询帖子所有评论并进行格式化(分两步)

    4.1 查询帖子下所有评论(查询帖子一级评论)

    根据commentable_id和commentable_type确定具体的帖子

    按照theme_id=0(查找到一级评论)

    按照时间排序

    4.2 查询主题下的所有子评论

    按照是否删除查找

    按照主题查找(查找同一个主题下所有评论)

    按照pid查找(按照pid排序)

    按照时间查找(按照created_at排序)

    相关文章

      网友评论

          本文标题:简单的回帖评论设计

          本文链接:https://www.haomeiwen.com/subject/gpkmyxtx.html