springboot项目实现站内信功能

- 功能介绍:
(一)站内信肯定大家都不陌生,是指在系统现有的人员架构的基础上,进行一对一或一对多发送邮件的功能。
(二)站内信的目的是为了消息通知的更为便捷,只在内部流转,且系统中留有存底的消息信息。
(三)站内信的信息以明码的方式留存到数据库中,不做真删除。
- 数据库设计:
(一)设计前提:
明确了需求,下一步对于后台开发来说就是数据库表的设计。对于用户量大的系统,设计一个好的数据库表结构可以为系统节省性能,提高查询效率的同时用户体验也会更好。
(二)设计思路:
1、发送站内信,在数据库中冗余最多的信息便是站内信的消息内容,内容多且繁杂,若要一对百或千或万发送那么数据库中就要存入成千上万条重复的消息内容;
2、如果系统使用用户多(上千上万级别),但是又有许多废弃或常年不登录的僵尸号,此时群发站内信也会造成没必要的数据录入。后台也需要设计过时消息功能,对数据库表定时处理,防止常年不登录的账户突然登录站内信过多的问题。
3、站内信的删除,接收者和发送者都有该条站内信的数据,一方删除另一方仍然可以查到该条站内信,就需要做好单向删除。
(三)数据库表结构:
我在此设计了三张表,用于站内信功能的使用。基于实现,表可能会更多或更少。也欢迎各位大佬提出意见建议。

站内信发送表:off_mail
该表记录站内信发送人以及接收人的信息,通过发送时间和收信人信息状态判定是否为过时消息,对接收人进行删除处理。

字段名 说明
id 唯一主键
receive_user_id 接收人id
send_out_name 发送人姓名
send_time 发送时间
mail_id 站内信id
send_state 发信人信息状态 /0已发送/1删除
receive_state 收信人信息状态 /0已接收/1删除

站内信信息表:off_message
该表记录站内信的消息内容,状态是做草稿箱处理的。关联id是站内信的id

字段名 说明
mail_id 关联站内信mail_id
mail_title 站内信标题
mail_content 站内信内容
receive_name 收信人列表
maile_state 状态/0已发送/1草稿箱

站内信接收表:off_receive
该表记录站内信的接收人的信息,当用户登录时去查询站内信发送表是否有该用户且未过时的站内信,进行写入。

字段名 说明
id 主键
send_out_name 发送人姓名
mail_id 站内信id
receive_id 接收人id
state 状态/0未读/1已读

- 功能实现:
(一)代码生成:
代码生成使用mybatis-plus代码生成器生成。是在本地部署的,线上那版过期了

springboot项目实现站内信功能记实相关推荐

  1. tp框架实现一对多单发站内信功能。

    站内信功能 前言: 公司项目需要一个站内信功能,但我没做过,所以做个记录,根据需求,需要后台发送站内信,前台用户接受,默认状态保持为未读,当用户点击查看时,更改状态为已读状态,并且站内信可回复. 后台 ...

  2. 总后台顶部实现站内信功能

    近期的量化项目,接到一个需求,需要在总后台的顶部做一个站内信的功能,要求可以滚动显示,有信息的时候在站内信图标处显示红点,点击图标出现站内信列表,关掉之后再点击图标的时候,会有最新的信息进来 效果如下 ...

  3. 基于workerman实现的web消息推送站内信功能

    流程说明 使用 web-msg-sender 作为 服务器监听程序. 客户端(浏览器)通过websocket连接 服务器监听程序. 服务器应用程序(后端) 通过curl访问 服务器监听程序,将需要推送 ...

  4. ASP.NET 实现站内信功能(点对点发送,管理员群发)

    正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来. http://www.cnblogs.com/grenet/archive/2010/03/08/168065 ...

  5. 百万级用户量的站内信设计

    1. 方案描述 该方案用于系统站内信功能模块在百万级用户量情况下的效率问题,只是后台管理员给前台用户发送站内信,用户与用户之间的发送不在讨论内. 2. 方案详情 假设系统的用户量达到了200W,活跃用 ...

  6. 基于百万级别的站内信设计

    基本上现在的网站都会有站内信功能,主要分为少量(10-999用户),中量(1000-99999用户),大量(100W用户)不同的站内信架构,消耗存储空间,和效率也是不同的.这次要设计的是基于百万级别的 ...

  7. 单系统站内信数据库设计思路

    第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务. status:已读.未读 ...

  8. 开源 免费 java CMS - FreeCMS2.1 会员站内信

    项目地址:http://www.freeteam.cn/ 站内信 1.1.1 写信 从左側管理菜单点击写信进入. 输入收信人.标题.内容后点击发送button. 1.1.2 收件箱 从左側管理菜单点击 ...

  9. 单系统站内信设计概述(满足百万级信息)

    基本功能 点到点的消息传送: 用户给用户 管理员给用户 点到面的消息传送 管理员给用户群 少量用户(10-999) 对于用户非常少的情况,没有必要深入的考虑数据库的优化,采用简单的表设计: 如表mes ...

  10. mysql群发消息_分享网站群发站内信数据库表设计

    本文和大家分享一下网站站内信实现表设计的功能.需要的朋友可以参考下. "站内信"不同于电子邮件,电子邮件通过专门的邮件服务器发送.保存.而"站内信"是系统内的消 ...

最新文章

  1. 周末都花费在智能车实验室,结果......
  2. Windows 7使用wubi硬盘安装Ubuntu (文字版)
  3. Python爬取网站用户手机号_利用python爬取慕课网站上面课程
  4. spring step 1 : 什么是spring
  5. linux命令切换tty
  6. Django中使用Celery(附赠代码)
  7. 网卡流量监控工具vnstat的使用
  8. unity, Gizmos.DrawMesh一个坑
  9. 台式电脑连接蓝牙耳机_怎样知道电脑(台式机)有没有蓝牙?
  10. php 一个URL加密解密的程序
  11. 小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
  12. 编译原理-词法分析-上下文无关文法
  13. 百度地图API秘钥问题
  14. Android最新API获取北斗卫星定位信息(全网最新)
  15. ProE5.0塑胶产品结构设计实例知识视频教程
  16. Apache Doris ODBC Mysql外表在centos下的使用方法及配置
  17. 卷积神经网络( CNN)与全卷积神经网络(FCN)
  18. java上传刷新_用ajaxfileupload实现无刷新上传的代码示例
  19. 安全帽识别系统为智能视频分析助力
  20. 用 Python 快速追踪基金的收益情况(2022年4月更新) | Python财经实践

热门文章

  1. 启动Hadoop都哪些进程?它们的作用是什么
  2. Win7——无Internet访问权限
  3. 关于canvas生成图片的方法
  4. 第一次学游泳技巧_第一次学游泳怎么浮起来
  5. 使用TTP224触摸芯片时出现的一些问题
  6. arduino/Mixly TEMT6000环境光传感器
  7. 用python turtle画人_家里蹲太孤单?用 Python 画一只单身狗
  8. 易捷行云EasyStack携手北联国芯,共筑鲲鹏生态
  9. android 圆形头像方案,android圆形头像实现
  10. 课程预约小程序开发需要哪些功能?