社区评论系统设计

数据库设计

sql 复制代码
CREATE TABLE `comment`(
    `id`          bigint(20) unsigned NOT NULL COMMENT '评论ID(雪花算法生成)',
    `biz_id`      bigint(20) NOT NULL COMMENT '业务ID(如微博ID)',
    `biz_type`    tinyint(4) NOT NULL DEFAULT 1 COMMENT '业务类型(1=微博,2=视频,3=文章)',
    `user_id`     bigint(20) NOT NULL COMMENT '评论用户ID',
    `content`     varchar(1000) NOT NULL COMMENT '评论内容(过滤敏感词后)',
    `parent_id`   bigint(20) NOT NULL DEFAULT 0 COMMENT '父评论ID(0=一级评论,>0=回复)',
    `root_id`     bigint(20) NOT NULL DEFAULT 0 COMMENT '根评论ID(所有层级回复共享根评论ID)',
    `like_count`  int(11) NOT NULL DEFAULT 0 COMMENT '点赞数',
    `status`      tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态(1=正常,0=删除,2=审核中)',
    `create_time` datetime      NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    PRIMARY KEY (`id`),
    KEY           `idx_biz_root` (`biz_type`,`biz_id`,`root_id`,`status`,`create_time`),
    KEY           `idx_root_parent` (`root_id`,`parent_id`,`status`,`create_time`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '评论表(含回复,统一存储)';
相关推荐
程序员清风7 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
李广坤8 小时前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
皮皮林5519 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊14 小时前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing14 小时前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠1 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840821 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide1 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家1 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺1 天前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java