总共4张表---发私信功能未实现,所以只有用户表、登录凭证表、帖子表、评论表四张。

1.user用户表

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;
  • username用户名称
  • password用户密码
  • salt盐用来加密
  • email用户的邮箱
  • type用户的类型 0表示普通用户 1表示超级管理员 2表示版主
  • status 0表示未激活 1表示激活
  • activation_code激活码
  • header_url头像地址
  • create_time用户注册时间

2.discuss_post帖子表

CREATE TABLE `discuss_post` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` varchar(45) DEFAULT NULL,`title` varchar(100) DEFAULT NULL,`content` text,`type` int(11) DEFAULT NULL COMMENT '0-普通; 1-置顶;',`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`),KEY `index_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • user_id表示发帖人的id
  • title表示标题
  • content表示帖子内容
  • type表示帖子类型 0表示普通帖子 1表示置顶帖子
  • status表示帖子的状态 0表示正常帖子 1表示精华帖 2表示拉黑帖
  • create_time表示发帖日期
  • comment_count表示帖子的评论数,是一个冗余参数,目的是为了提供查询效率

3.login_ticket登录凭证表

CREATE TABLE `login_ticket` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL,`ticket` varchar(45) NOT NULL,`status` int(11) DEFAULT '0' COMMENT '0-有效; 1-无效;',`expired` timestamp NOT NULL,PRIMARY KEY (`id`),KEY `index_ticket` (`ticket`(20))
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

登录凭证表,目的是为了保护用户数据的安全,用于检测用户是否处于登录状态,然后在启动服务器时通过拦截器获取登录凭证创建User对象

  • user_id用户id
  • ticket凭证编号
  • status凭证状态 0表示有效凭证 1表示无效凭证
  • expired用于检测这个凭证是否已经过期

4.comment评论表

CREATE TABLE `comment` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) DEFAULT NULL,`entity_type` int(11) DEFAULT NULL,`entity_id` int(11) DEFAULT NULL,`target_id` int(11) DEFAULT NULL,`content` text,`status` int(11) DEFAULT NULL,`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_user_id` (`user_id`) /*!80000 INVISIBLE */,KEY `index_entity_id` (`entity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • user_id用于表示发这条评论的用户id
  • entity_type表示评论的类型 :1表示回复帖子的评论 2表示回复评论的评论
  • entity_id表示该评论的帖子id
  • target_id表示回复时回复对象的id,如果id=0说明这是一条回复帖子的评论,如果id!=0说明这是回复target_id用户的评论
  • content评论内容
  • status评论的状态0表示有用的评论 1表示以删除的评论
  • create_time评论的发表时间

5.message消息表

CREATE TABLE `message` (`id` int(11) NOT NULL AUTO_INCREMENT,`from_id` int(11) DEFAULT NULL,`to_id` int(11) DEFAULT NULL,`conversation_id` varchar(45) NOT NULL,`content` text,`status` int(11) DEFAULT NULL COMMENT '0-未读;1-已读;2-删除;',`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_from_id` (`from_id`),KEY `index_to_id` (`to_id`),KEY `index_conversation_id` (`conversation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • from_id是发消息的人的id
  • to_id是发送目标的人的id
  • conversation_id也是一个冗余的字段目的是便于查询,规则以from_id和to_id用_拼接且小的在前大的在后
  • content消息内容
  • status消息的状态 0表示未读 1表示已读 2表示删除
  • create_time消息的发送时间

项目:数据库表的梳理相关推荐

  1. C++文件服务器项目—数据库表设计 与 后端接口设计—6

    C++文件服务器项目-数据库表的设计-6 前言 1. 数据库建表 1.1 用户信息表 user_info 1.2 文件信息表 file_info 1.3 用户文件列表表 user_file_list ...

  2. 秒杀设计 mysql_秒杀项目-数据库表设计

    -- 数据库初始化脚本 -- 创建数据库 CREATE DATABASE seckill; -- 使用数据库 use seckill; -- 创建秒杀库存表 CREATE TABLE seckill( ...

  3. flowable 数据库表结构 梳理

    文章目录 1. 二进制数据表 (act_ge_bytearray) 2. 属性数据表(act_ge_property) 3. 历史节点表(act_hi_actinst) 4. 历史附件表( act_h ...

  4. 01-生鲜项目-数据库表设计

    用户表:user  id为主键 创建时间create_time 与 update_time需要设置默认值 商品类别表:category   商品表: 购物车: 订单表:其中使用了id 但是又使用了or ...

  5. GitHub轻松阅读微服务实战项目流程详解【第一天:数据库表设计及其环境搭建、项目运行】

    One Day 1.数据库表详解 2.项目环境准备 github地址:https://github.com/Zealon159/light-reading-cloud 项目服务端主要使用SpringB ...

  6. c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...

    向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...

  7. SSH项目中根据Hibernate的映射文件生成数据库表的方案:

    1.首先在项目的根目录下配置:hibernate.cfg.xml文件:如下: <?xml version="1.0" encoding="UTF-8"?& ...

  8. hibernate 读取mysql表结构_为什么要用hibernate 与基于数据库表结构的项目开发

    最近开始学习hibernate,其实并不知道要学习什么,有什么用.后来问了一下同事,他就说快捷方便简单,很多事情不用自己做他会帮你做好,但是我觉得不应该是这样的, 于是我就去搜了一下,就搜到了一篇帖子 ...

  9. 网上书城项目的需求分析、数据库表设计及前端界面的编写(项目进度一)

    转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 网上书城项目的需求分析. ...

最新文章

  1. FreeBSD Ports加速的方法
  2. Oracle-trigger触发器解读
  3. logitech g hub一直在初始化_Wi-Fi中“2.4G”和“5G”的那些事儿
  4. Linux 面试最高频的 5 个基本问题!
  5. 智慧赋能黔货出山 丰收节交易会·李喜贵:贵州农业数字化
  6. Qt 之 Qt/Qt Lite 自编译详解(VS/MinGW/...)
  7. 如何写出优雅的异常处理
  8. CentOS虚拟机时间同步
  9. 对CMMI标准的简单理解
  10. MySQL学习十四创建和操纵表
  11. PreScan Regenerate问题
  12. 数据评估:SD(标准差), 方差, 方差分析(ANOVA)
  13. android自定义打电话界面,两种Android打电话实现方法
  14. Tracup小提示:工作总是摸鱼、走神,您可能得了“成人多动症”?
  15. mysql免安装版,遇到msvcr120dll文件丢失错误的解决方案
  16. 借微信更新说说有关版本的那些事儿
  17. 十字路口待转区什么用_左转待转区的几种违章 稍不注意你绝对就要中招
  18. 华为大数据HCIP认证(HCIP-Big Data Developer V2.0) 考试大纲
  19. 如何写好PRD(产品需求文档)+范例
  20. 连锁店管理系统如何助力零售业

热门文章

  1. Java 生成随机中文、英文姓名(下)
  2. dspq值多少最好_抖音手机上怎么修改视频的md5值
  3. win7如何隐藏所有微软服务器,如何隐藏Win7登录界面的administrator用户名
  4. NB-IoT窖井井盖解决方案
  5. C# Monitor.TryEnter 源码跟踪
  6. 开发会自测为什么测试还会单独存在?软件测试八大误区
  7. Unity 之 ShaderGraph Input节点解析汇总
  8. 图文详解 DBMS 数据库管理系统三层架构体系(三级模式)《ClickHouse 实战:企业级大数据分析引擎》...
  9. python画钟表代码_Python技能操作5:用代码做个能挂墙上的大钟表
  10. 【uniApp 接入萤石云】