用户表sql:包括用户id,用户名,密码,昵称,性别,头像,生日,创建日期,更新日期等,其它字段可自行扩展
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, // id 主键 自动增长 username VARCHAR(50) NOT NULL, // 用户名 password VARCHAR(50) NOT NULL, // 密码 nickname VARCHAR(50) NOT NULL, // 昵称 avatar varchar(255), // 头像url sex TINYINT(1) NOT NULL DEFAULT 1, // 性别,只能是1或0,1代表男,0代表女 birthday DATE, // 生日为 DATE 日期类型 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, // 创建时间,自动应用当前时间戳(也可自行修改) updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP // 更新时间,自动更新 );
文章表sql:包括文章id,标题,内容,创建时间,更新时间,其它字段可自行扩展(例如文章作者id,点赞量,阅读量等)
CREATE TABLE article ( id INT PRIMARY KEY AUTO_INCREMENT, // id 主键 自动增长 user_id INT NOT NULL, // 用户id title VARCHAR(255) NOT NULL, // 文章标题 content TEXT NOT NULL, // 文章内容 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, // 创建时间,自动应用当前时间戳(也可自行修改) update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP // 更新时间,自动更新 );
文章评论表sql:包括评论id,文章id,用户id,评论内容,评论时间(直接使用create_time字段),更新时间
CREATE TABLE comment ( id INT PRIMARY KEY AUTO_INCREMENT, // id 主键 自动增长 article_id INT NOT NULL, // 文章id user_id INT NOT NULL, // 用户id content TEXT NOT NULL, // 评论内容 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, // 评论时间,自动应用当前时间戳(也可自行修改) update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, // 更新时间,自动更新 FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE // 文章id 关联 文章表的id,当文章删除时,该评论也自动删除 //(如果当用户注销时,也想要删除用户评论过的内容,也可采取关联的做法) );
评论回复表sql:包括回复id,用户id,评论id,父级回复id,回复内容,回复时间(create_time),更新时间
回复功能,即可回复评论,也可回复回复,大部分网站都有这种功能
CREATE TABLE reply ( id INT PRIMARY KEY AUTO_INCREMENT, // id 主键 自动增长 user_id INT NOT NULL, // 用户id comment_id INT NOT NULL, // 评论id parent_id INT DEFAULT NULL, // 父级回复id content TEXT NOT NULL, // 回复内容 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, // 回复时间,自动应用当前时间戳(也可自行修改) // 更新时间,自动更新 update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, // 回复表.评论id 关联 评论表.id,当评论删除时,评论下的回复也删除 FOREIGN KEY (comment_id) REFERENCES comment(id) ON DELETE CASCADE, // 回复表.父级回复id 关联 回复表.id,当回复删除时,回复下的回复也删除 FOREIGN KEY (parent_id) REFERENCES reply(id) ON DELETE CASCADE );