MySQL-类似新浪微博的对话功能的数据库怎么设计?

MySQL-类似新浪微博的对话功能的数据库怎么设计?

瑾兮 发布于 2017-01-11 字数 658 浏览 1357 回复 1

现在新浪微博推出了评论可以查看对话,类似这样

请输入图片描述

想这种有层次的回复结构,怎么设计好?

目前采用的结构是

CREATE TABLE `comment` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '评论者id',
`reply_comment_id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '回复的评论id',
`content` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '评论内容',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='评论'

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-09-20 1 楼

可以添加一个字段,就是原始评论的ID

CREATE TABLE `comment_list` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`comment_id` BIGINT(20) COMMENT '评论的id',
`reply_comment_id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '回复的评论id',
`user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '评论者id',
`content` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '评论内容',
PRIMARY KEY (`id`),
KEY `cr_id` (`comment_id`,`reply_comment_id`) USING BTREE
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='评论列表'

这样按照comment_id查询就能得到所有列表,按照id顺序排列就是了。