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
    

    查询结果 ↓

  • 相关阅读:
    java Des 加密解密技术
    JAVA处理外部链接的方法
    javascript 中escape、encodeURI、encodeURIComponent 区别
    JQuery与JS 遍历和操作 父页面控件的比较
    JS 添加删除元素 /DOM
    jquery 验证所有text,textare非法字符
    jquery url检测遇到的jquery跨域问题及JSONP的使用
    二叉树遍历非递归算法——后序遍历
    二叉树遍历非递归算法——中序遍历
    二叉树遍历非递归算法——先序遍历
  • 原文地址:https://www.cnblogs.com/KTblog/p/9025838.html
Copyright © 2011-2022 走看看