首先是一个双表的设计
CREATE TABLE comments (
id INT(11) NOT NULL AUTO_INCREMENT,
post_id INT(11) NOT NULL,
author VARCHAR(50) NOT NULL,
comment_text TEXT NOT NULL,
created_at DATETIME NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE replies (
id INT(11) NOT NULL AUTO_INCREMENT,
comment_id INT(11) NOT NULL,
author VARCHAR(50) NOT NULL,
reply_text TEXT NOT NULL,
created_at DATETIME NOT NULL,
PRIMARY KEY (id)
);
其中,comments 表用于存储主评论,包括 id、post_id(该评论所属文章的 ID)、author、comment_text(评论内容)、created_at(评论创建时间)。replies 表用于存储回复评论,包括 id、comment_id(该回复所属主评论的 ID)、author、reply_text(回复内容)、created_at(回复创建时间)。
你还可以添加其他字段,例如用户信息、IP 地址等,视情况而定。
然后就是一个单表的设计
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | INT | 主键,自增 |
| parent_id | INT | 回复的父级评论id,如果是一级评论则为0 |
| user_id | INT | 发表评论的用户id |
| content | TEXT | 评论内容 |
| create_time | DATETIME | 评论创建时间 |
| update_time | DATETIME | 评论更新时间 |
其中,如果是一级评论,parent_id字段值为0,如果是回复某个评论,parent_id字段值为被回复的评论的id。这样设计可以方便地查询某条评论的所有回复以及对应的用户信息。
根据自己的业务 可以增加一些其他的字段 这个只是这张表最基础的结构
文章介绍了两种评论系统数据库设计方式:一种是双表设计,包括comments表存储主评论,replies表存储回复;另一种是单表设计,通过parent_id字段区分一级评论和回复。这两种设计都考虑了评论的层次关系和用户信息的关联。
1792

被折叠的 条评论
为什么被折叠?



