首先是一个双表的设计
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。这样设计可以方便地查询某条评论的所有回复以及对应的用户信息。
根据自己的业务 可以增加一些其他的字段 这个只是这张表最基础的结构