zoukankan      html  css  js  c++  java
  • 模仿segmentfault 评论

    实现核心功能,包括数据库设计,java代码编写。

    使用 @用户 评论方法,避免了多重循环嵌套方式。

    微博、思否就是用这种评论方式。

    效果图:

    微博(评论时间倒叙,从下向上看):

    思否

    数据库设计:

    涉及到三张表:

    评论表 ↓

    CREATE TABLE `pm_comment` (
      `id` varchar(30) NOT NULL,
      `pid` varchar(30) DEFAULT NULL,
      `pictureid` varchar(30) DEFAULT NULL,
      `userid` varchar(32) DEFAULT NULL COMMENT '评论用户id',
      `beicommentuserid` varchar(32) DEFAULT NULL COMMENT '被评论用户id,如果添加根节点评论,则为空',
      `commenttime` datetime DEFAULT NULL,
      `isrelease` int(11) DEFAULT '1',
      `isdel` int(11) DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    评论内容表 ↓

    CREATE TABLE `pm_commentcontent` (
      `id` varchar(32) NOT NULL DEFAULT '',
      `commentid` varchar(30) NOT NULL,
      `commentcontent` varchar(500) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    用户表 ↓

    CREATE TABLE `pm_user` (
      `id` varchar(30) NOT NULL,
      `account` varchar(20) NOT NULL,
      `password` varchar(40) NOT NULL,
      `nickname` varchar(20) DEFAULT NULL,
      `avatar` varchar(200) DEFAULT NULL,
      `gender` varchar(10) NOT NULL,
      `phonenumber` varchar(11) NOT NULL,
      `email` varchar(50) NOT NULL,
      `createtime` datetime NOT NULL,
      `updatetime` datetime DEFAULT NULL,
      `isdel` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    关联查询出评论记录:

    SELECT
    	pc.id,
    	pc.pid,
    	pc.pictureid,
    	pc.userid,
    	pu.account AS username,
    	pc.beicommentuserid,
    	pus.account AS beicommentusername,
    	pc.commenttime,
    	pc.isrelease,
    	pc.isdel,
    	pcc.commentcontent AS commentcontent
    FROM
    	pm_comment AS pc
    INNER JOIN pm_commentcontent AS pcc ON pc.id = pcc.commentid
    INNER JOIN pm_user AS pu ON pc.userid = pu.id
    LEFT JOIN pm_user AS pus ON pc.beicommentuserid = pus.id
    WHERE
    	pc.pictureid = '176476335496474624'
    -- AND pc.pid = '0'
    ORDER BY
    	pc.commenttime DESC
    

    查询结果 ↓

  • 相关阅读:
    linux下小知识点积累
    马斯洛需求层次理论
    tar命令的小经验
    shell 和c语言的区别
    使用vue实现的品牌列表简单小例子
    vue的基本代码以及常见指令
    MVC和MVVM
    CSS3幽灵
    Web版App,原生App,混合App的区别以及优缺点
    常见的sql操作
  • 原文地址:https://www.cnblogs.com/KTblog/p/9025838.html
Copyright © 2011-2022 走看看