项目总结-1
项目是以现在的知乎、牛客网这类问答平台为原型,基于springboot的SSM框架的Java web应用项目。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,实现了发布帖子,评论帖子,私信,关注,排行榜,敏感词过滤等功能。
1.数据库的建立
1.1 讨论帖数据表
包括:
帖子id:主键
发帖的用户ID:便于查看某个用户发布的帖子详情,[索引]
帖子标题:便于帖子检测
帖子内容:便于帖子检测和显示
帖子类型:[0-普通,1-置顶]
帖子状态:[0-正常; 1-精华; 2-拉黑]
创建时间:便于帖子排序
帖子评论数量:便于显示以及计算帖子的分数
帖子得分:便于帖子排序
create database community; #创建数据库community
use community; #使用数据库community
DROP TABLE IF EXISTS `discuss_post`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `discuss_post` ( #创建表discuss_post
`id` int(11) NOT NULL AUTO_INCREMENT, #帖子的id 非空 自增
`user_id` varchar(45) DEFAULT NULL, #用户的id 默认为空
`title` varchar(100) DEFAULT NULL, #帖子的标题 默认为空
`content` text, #帖子的内容
`type` int(11) DEFAULT NULL COMMENT '0-普通; 1-置顶;',#帖子的类型 comment属性来添加注释
`status` int(11) DEFAULT NULL COMMENT '0-正常; 1-精华; 2-拉黑;', #帖子的状态
`create_time` timestamp NULL DEFAULT NULL, #帖子创建的时间
`comment_count` int(11) DEFAULT NULL, #帖子评论的数量
`score` double DEFAULT NULL, #帖子的得分,用于热帖的判别
PRIMARY KEY (`id`), #id为主键
KEY `index_user_id` (`user_id`) #创建索引 user_id
) ENGINE=InnoDB DEFAULT CHARSET=utf8; #使用innodb引擎
1.2 用户的数据表
包括:
用户id:主键
用户名:用于登录以及查看用户帖子详情 [索引]
密码::等于登录验证
盐:用于密码加密
邮箱:用于发送注册验证信息 [索引]
用户类型:‘0-普通用户; 1-管理员; 2-版主;’
用户状态: ‘0-未激活; 1-已激活;’
激活码:用于用户验证
头像地址:用于用户头像的展示
创建时间:用户创建的时间
DROP TABLE IF EXISTS `user`; #user表
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`salt` varchar(50) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`type` int(11) DEFAULT NULL COMMENT '0-普通用户; 1-超级管理员; 2-版主;',
`status` int(11) DEFAULT NULL COMMENT '0-未激活; 1-已激活;',
`activation_code` varchar(100) DEFAULT NULL,
`header_url` varchar(200) DEFAULT NULL,
`create_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_username` (`username`(20)),
KEY `index_email` (`email`(20))
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;