模仿segmentfault 评论

Posted HF_Student_NotePad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模仿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

查询结果 ↓

 

以上是关于模仿segmentfault 评论的主要内容,如果未能解决你的问题,请参考以下文章

模仿贴吧评论系统

分享前端开发常用代码片段

动态 Rstudio 代码片段

《java并发编程实战》

导航组件 - 模仿Navcontroller图形

Android OpenGLES3绘图 - 音频可视化(模仿MIUI系统效果)