一般来说,需求出来之后,经过需求评审后,就需要进行数据库的设计了,毕竟后续功能的开发,很大程度上依赖于表结构的设计,下面简单聊聊web聊天系统的数据库是如何设计的。如需更全面的了解该系统,可以阅读相关文章:

(1)基于springBoot、Vue、websocket的聊天系统总体概述

目前,该系统一共设计了7张表:

1.系统用户表:sys_user

2.聊天室:chat_room

3.用户聊天室关联表:user_room

4.好友表:friendship

5.好友分组表(暂时没有用到):friend_group

6.消息接受表:chat_message

7.消息详情表:chat_message_detail

具体如下图所示:

1.系统用户表:sys_user

这个表设计得比较常规,除了is_online字段,这个字段主要是为了判断好友是否在线

2.聊天室:chat_room

这个表有两个字段需要说明一下(目前都没有用上):(1)master_id,群主的用户id  (2)manager_ids,管理员的id集合,多个用英文逗号隔开

3.好友表:friendship

设计的时候,考虑的就是,怎样判断谁是谁的好友,目前是设计是:

(1)user_id,是自己的id,friend_id,是好友的id,所以,如果双方是好友,是有两条记录的,用来表明,你是我的好友,同时,我也是你的好友

(2)status字段为0,表示发送了添加好友的请求,等待对方验证通过,如果通过,则status修改为1,否则修改为2

4消息接受表及详情表:chat_message、chat_message_detail

你可能会问,一张表就可以完成的事,为什么要把一个消息表,拆分成两个表?主要是出于以下考虑:

(1)消息内容,是个大字段,拆开存储,有助于实现按需查询数据

(2)对于群聊消息,同一份数据,保留了多份,这样就浪费了空间

基于springBoot、Vue、websocket的聊天系统:数据库设计相关推荐

  1. 基于Springboot+vue的小米商城(源代码+数据库)056

    部分代码地址 https://gitee.com/ynwynwyn/xiaomiMall-public 基于Springboot+vue的小米商城(源代码+数据库) 一.系统介绍 本项目分为管理员与普 ...

  2. 基于Springboot+vue的在线聊天系统

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  3. 基于Springboot+Vue的电子购物商城设计

    开发软件: Eclipse/Idea + WebStorm/Vscode + Mysql 基于Vue的一套电商系统,包括移动端商城和后台管理系统,基于SpringBoot2.X及相关技术栈开发. 前台 ...

  4. 杨校老师课堂之基于SpringBoot + Vue 的智能停车场平台设计

    1. 获取代码: 自助获取:https://download.csdn.net/download/kese7952/84988573 点我去下载 2. 技术栈 后端 SpringBoot + Spri ...

  5. java计算机毕业设计基于springboot+vue+elementUI的旅游网站(源码+数据库+Lw文档)

    项目介绍 旅游管理平台采用B/S模式,促进了旅游管理平台的安全.快捷.高效的发展.传统的管理模式还处于手工处理阶段,管理效率极低,随着用户的不断增多,传统基于手工管理模式已经无法满足当前用户需求,随着 ...

  6. 计算机毕业设计基于springboot+vue+elementUI的网吧管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着我国的经济发展,人们的生活水平也有了一定程度的提高,对网络的要求也越来越高,很多家庭都有了自己的电脑,但是很多时候大家在家里玩电脑的时候找不到那种玩耍的气氛和氛围,这个时候大家就都选择了 ...

  7. 基于 Springboot + Vue + Bootstrap 的电影票订票购票系统,可用于毕业设计、课程设计、练手学习

    本文首发与Java项目实战网,原来链接:http://www.javaxmsz.com/main/detail?blogId=23 最近博主手撸了一个比较简单的 Springboot+Vue 非前后端 ...

  8. 基于SpringBoot的企业OA系统的设计与实现,Java毕业设计项目,高质量毕业论文范例,源码,数据库脚本,项目导入运行视频教程,论文撰写教程

    目录 课题背景 项目技术栈 适合对象 适合课题 项目功能概述 高质量论文范例(附原图,可再次编辑和修改) 毕业设计撰写视频教程 部分运行截图 课题背景 82.7%的受访白领表示认为数字化技术极大地提高 ...

  9. 基于Springboot+vue电影院会员管理系统(源代码+数据库+文档)025

    部分代码地址 https://gitee.com/ynwynwyn/cinema-public 基于Springboot+vue电影院会员管理系统(源代码+数据库+文档) 一.系统介绍 cinema项 ...

  10. 基于SpringBoot+vue的民宿预定管理系统(源代码+数据库) 033

    部分代码地址 https://gitee.com/ynwynwyn/mingsu-public 基于SpringBoot+vue的民宿预定管理系统 一.系统介绍 本项目是前后端分离开发 前台: 民宿预 ...

最新文章

  1. 带你玩玩转 MySQL 查询
  2. linux tomcat 安装教程,关于Linux下配置安装Tomcat8的步骤
  3. 观感人故事《我们俩》
  4. 跟我一起考PMP--项目质量管理
  5. opencv sobe 边缘检测算子
  6. 知识图谱(五)——实体消歧
  7. 台大林轩田《机器学习基石》系列课程教材的习题更新完毕了
  8. 真诚推荐这7个大佬的公众号,碎片化学习
  9. 计算机科学导论课后单词,计算机科学导论课后总结
  10. Matlab给Ansys助攻
  11. 谷歌和 Zyxel 各修复一个已遭利用的 0day
  12. 百战程序员-人工智能从入门到开发教程(60万下载量)
  13. android 4.4.2 安全漏洞修复
  14. PyTorch实现基于卷积神经网络的面部表情识别
  15. Microsoft Edge安装扩展插件
  16. DDR4、GDDR5、GDDR6内存的区别
  17. 规范使用计算机的ppt,2016年职称计算机PowerPoint操作练习题
  18. 【小记】人生若只如初见
  19. 浅谈FromHandle
  20. centos8使用技巧与阿贝云服务器

热门文章

  1. 边框盒子和内容盒子的区别
  2. 使用gitlab中issues做缺陷管理
  3. 微信朋友圈信息流的系统设计
  4. Java虚拟机垃圾回收相关知识点全梳理(下)
  5. LeetCode -- 剑指 Offer 42. 连续子数组的最大和
  6. IDEA+TestNG 环境部署+疑问+学习(参考链接汇总)
  7. 三步实现CentOS ftp服务器架设
  8. 德鲁伊连接池学习笔记
  9. 每个程序员都应该参加一次 GDD
  10. python求素数的函数_如何用python求素数