类似微信朋友圈评论回复功能表设计、代码实现
类似微信朋友圈评论回复功能表设计
一、数据库表设计
评论表(Comment Table)
| 字段名称 | 类型 | 描述 |
| --- | --- | --- |
| id | int |评论ID,自增主键 |
| user_id | int |评论用户ID |
| content | varchar |评论内容 |
| comment_type | tinyint |评论类型(1:普通评论,2:回复评论) |
| comment_pic | varchar |评论图片URL(如果有) |
| created_at | datetime |评论时间 |
| updated_at | datetime | 最后更新时间 |
注:1. `comment_type` 字段用于区分不同功能下的评论类型,如普通评论、回复评论等。2. `comment_pic` 字段用于存储评论图片时使用。
回复表(Reply Table)
| 字段名称 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 回复ID,自增主键 |
| comment_id | int | 回复的评论ID |
| user_id | int | 回复用户ID |
| content | varchar | 回复内容 |
| reply_type | tinyint | 回复类型(1:普通回复,2:回复回复) |
| created_at | datetime | 回复时间 |
| updated_at | datetime | 最后更新时间 |
注:1. `reply_type` 字段与评论中的 `comment_type` 字段用法一致。
用户表(User Table)
| 字段名称 | 类型 | 描述 |
| --- | --- | --- |
| id | int | 用户ID,自增主键 |
| username | varchar | 用户名 |
| avatar | varchar | 用户头像URL |
二、评论回复功能设计
1. 普通评论* 当用户点击发布评论按钮时,系统会创建一个新的评论记录,并将其存储在评论表中。
*评论内容和评论时间会被自动保存。
2. 回复评论* 当用户点击回复评论按钮时,系统会创建一个新的回复记录,并将其存储在回复表中。
* 回复内容、回复时间以及对应的评论ID会被自动保存。
3. 回复回复* 当用户点击回复回复按钮时,系统会创建一个新的回复回复记录,并将其存储在回复表中。
* 回复内容、回复时间以及对应的评论ID和回复ID会被自动保存。
三、代码实现
1.评论表(Comment Table)相关代码```sqlCREATE TABLE comments (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
content VARCHAR(255) NOT NULL,
comment_type TINYINT NOT NULL DEFAULT1,
comment_pic VARCHAR(255),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
INSERT INTO comments (user_id, content, comment_type, comment_pic)
VALUES (1, '这是一个普通评论',1, NULL);
```
2. 回复表(Reply Table)相关代码```sqlCREATE TABLE replies (
id INT PRIMARY KEY AUTO_INCREMENT,
comment_id INT NOT NULL,
user_id INT NOT NULL,
content VARCHAR(255) NOT NULL,
reply_type TINYINT NOT NULL DEFAULT1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
INSERT INTO replies (comment_id, user_id, content, reply_type)
VALUES (1,2, '这是一个回复评论',1);
```
3. 用户表(User Table)相关代码```sqlCREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
avatar VARCHAR(255)
);
INSERT INTO users (username, avatar)
VALUES ('user1', '