php 文章评论部分 如何写

在文章下的评论 部分如何写 (评论与回复)

clipboard.png
sql数据库已经设置 post 和parentid了

阅读 2k
3 个回答

楼主能一下数据库字段的含义吗?
感觉文章表和评论表分开做比较好,如果评论量级大的话。
还有处理最好是使用队列去批量处理(异步),不然也会产生量级大导致数据库频繁读写的问题
建议做一个评论表,这个表里就存评论,包括所有评论以及回复,再做一个关系的派生表,用来存放评论以及回复还有文章的关系,这样便于分表以及减少对数据库的读写次数

这个要看你们的需求了,是一对一的,还是一对多的,多对多的,一般文章表和评论表是分开的,通过外键关联起来,还有一篇文章下,回复人对回复人的回复,这种情况你也可以换考虑一下,是不是需要再加一张表。

最近也在自己写,也是新手,目前是设计了一个评论表,感觉根据需求可以在评论表里加pid或者可以新设计一个关联评论的回复表

----------------------------
-- bbs_article
----------------------------
DROP TABLE IF EXISTS `bbs_article`;
CREATE TABLE `bbs_article` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `column_id` INT(11) DEFAULT NULL COMMENT '专栏ID',
  `title` INT(11) NOT NULL COMMENT '文章标题',
  `type` INT(11) NOT NULL COMMENT '类型: 1: 原创 2:转载 3:翻译',
  `url` varchar(256) NOT NULL COMMENT '文章内容存放地址',
  `view_count` INT(11) DEFAULT 0 COMMENT '浏览次数',
  `desc` VARCHAR(128) DEFAULT NULL,
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态: 0:停用,1:启用(默认为1)',
  `create_user` INT(11) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_user` INT(11) DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  `delete_user` INT(11) DEFAULT NULL,
  `delete_time` datetime DEFAULT NULL,
  `flag` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态: 0:删除,1:草稿 2: 审核中 3: 通过 4: 未通过 5: 禁止(封禁)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文章表';

----------------------------
-- bbs_article_comments
----------------------------
DROP TABLE IF EXISTS `bbs_article_comments`;
CREATE TABLE `bbs_article_comments` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `pid` INT(11) DEFAULT NULL COMMENT '父节点评论',
  `article_id` INT(11) DEFAULT NULL COMMENT '文章ID',
  `content` VARCHAR(256) NOT NULL COMMENT '评论内容',
  `create_user` INT(11) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_user` INT(11) DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  `delete_user` INT(11) DEFAULT NULL,
  `delete_time` datetime DEFAULT NULL,
  `flag` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态: 0:删除,1:可用(默认为1)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文章评论表';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题