网站需要增加3种消息提醒系统。需要实现的功能如下:

1.评论提醒。

实现功能

他人回复自己后,右上角自动提醒“未阅读的新消息”的数量。
点击后,清空新消息的提示。

思路

这个是最简单的。在数据库查询:

select count(id) from 评论表 where 贴子作者 = $当前用户UID and 是否被阅读 = 1 and 是否被删除 = 1

前端判断,后端返回的json数据是否>0,若大于则显示具体数量。
然后,给消息提示绑定一个方法。点击后AJAX:

UPDATE comment SET 是否被阅读 = 2 where 贴子作者 = $当前用户UID;

然后,前端把消息清空。

2.系统消息。

实现功能

系统消息与“评论”类似。只不过增加了一点。

用户收到的消息分2种。
一种是管理员发送给全体成员的消息。(如活动通知)

另一种是针对某个用户的通知。(举报反馈、登录异地提醒)

数据库设计

数据库字段如下:

id(自增主键),发送时间,消息标题,消息内容,receive_uid消息接收对象(0是给全体人的消息,其他是针对某个用户UID),had_read(用户是否阅读过这条消息),评论是否被删除

思路

全体消息有2种解决方案。
1.是给遍历用户,给每个用户发消息。这种方法在设计、实现上很简单,类似上面的评论。但消耗资源比较大(看你用户多不多)。
2.是发送给0,也就是说发送公共消息。每个人都可以接收,却只需要发送一条消息。
但也有缺点。若用户是在你“发送全体消息”之后,注册的账号。查询消息表时,也会加载历史消息。
不过这很容易解决。加载消息时判断“用户注册的时间戳”>“发送消息的时间戳”就可以。

下面我根据方法2实现一下:

首先,判断特定用户的消息是否被阅读。(同上)

select count(id) from 系统消息表 where 接收消息的UID = $当前用户UID and 是否被阅读 = 1 and 是否被删除 = 1

然后,给用户表新增字段。new_system_msg_count(新消息的数量)。
每次发送全体消息,给全体成员的new_system_msg_count字段+1。
用户刷新页面时,查询两个结果的和。显示在前端即可。
如何清空消息就不写了。

3.授权消息

实现功能

数据中心(后台)实现如下。

授权消息分2大类:

  1. 当前用户是作者。他人向自己申请授权。
  2. 当前用户申请了他人的授权,被同意/被拒绝。

数据库设计

数据库字段如下:

申请人UID,申请人是否阅读“作者回复的结果”,申请的贴子ID,申请时间,申请内容,
作者UID,作者是否阅读“这条申请”,申请回复结果(1等待作者回复,2作者同意/3作者拒绝),回复时间,回复内容。
是否被申请人取消申请,是否被申请人删除…

思路

授权消息需要注意2点:

  1. 一条消息对应2个UID(申请人,作者)。
  2. 新授权发起时,作者得到提醒。作者回复后(agree/disagree),申请人得到提醒。

当前用户作为“作者身份”得到的提醒数:

select count(id) from comment where 作者UID = $当前用户UID and 作者是否阅读 = 1 and 是否被申请者取消 = 2
and 申请回复结果 = 1(等待作者回复)

加上,当前用户作为“申请人身份”得到的提醒数:

select count(id) from comment where 申请人UID = $当前用户UID and 申请人是否阅读 = 1 and 是否被申请者取消 = 2
and (申请回复结果 = 2同意 or 申请回复结果 = 3拒绝)

前端显示2者的和即可。
清空消息就省略了。

需要注意的地方

我这种实现方式,是在“用户刷新页面时”。
在初始化方法里请求AJAX,所以不能实时提醒消息。
想实现的话可以用websocket。用户评论时、发送系统消息时,检测用户是否在线。再具体操作就可以了。

说明

本文用于:

  1. 整理思路
  2. 希望作为其他人的参考
  3. 欢迎大佬给出优化建议
  4. SQL 仅供参考,请根据实际情况修改。

多种消息提醒系统的设计模式、实现方案(附功能截图+表结构)相关推荐

  1. 消息提醒系统:设计模式与实现方案 (公告(通告)、消息、提醒等基本功能数据库表设计与实现)

    参考地址: 公告(通告),消息,提醒等基本功能数据库表设计_DamonREN的博客-CSDN博客 多种消息提醒系统的设计模式.实现方案(附功能截图+表结构)_黑夜的风的博客-CSDN博客_消息提醒 设 ...

  2. mysql 修改表结构方案_MySQL中修改表结构时需要注意的一些地方

    MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断 ...

  3. 怎么实现一个系统的消息提醒功能

    要实现消息提醒功能,你需要考虑以下几个方面: 如何触发消息提醒:消息提醒通常是在某些特定条件触发时发出的,所以你需要定义这些触发条件.例如,可以在系统中设置触发器,在某些事件发生时触发消息提醒. 如何 ...

  4. Win11系统如何设置任务栏新消息提醒

    用户在使用电脑的时候任务栏总会提醒用户一些待办事项.天气等等,但是有些win11用户跟小编反应自己升级系统后就没有收到过任务栏的消息.这是因为我们没有开启此功能所有无法接收到通知,下面我们就可以来看看 ...

  5. 短视频直播平台系统app开发搭建方案,助力企业搭建细分领域短视频app,开发多种短视频变现模式

    伴随着短视频行业的日益成熟,各类短视频APP竞争也相当激励,当前最火爆的抖音.快手.火山小视频等典型的短视频APP软件广受追捧. 通过短视频APP可以为用户提供高质量的娱乐文化信息服务,让短视频APP ...

  6. 利用延时处理实现表单系统数据通过微信公众号自动发送消息提醒

    延时处理是指在流程搭建过程中,在第一个步骤完成后不需要立即开启后续步骤,需要几个小时或者几天后再执行,这时可以利用延时处理功能,来实现数据流程. 如:利用集简云无代码软件集成平台, 连接金数据表单系统 ...

  7. 产品设计之消息提醒优化方案

    1.需求背景 消息提醒,每产生一条消息,给用户一条消息. 2.潜在问题 消息数量比较多,频繁消息提醒,打扰客户. 3.优化方案 1)非重要信息,同类消息频繁提醒,可以考虑合并消息且定期间隔提醒. 2) ...

  8. golang对接企业微信群机器人-在线客服系统新消息提醒方式之一【唯一客服】

    最近客服系统对接了一下企业微信的机器人 企业成员(内部)群机器人 只能在企业微信内部群里添加,设置好机器人头像名称之后会得到一个webhook,创建者可使用此wenhook去调用相关api向群里推送消 ...

  9. 华为设置android系统提醒功能,华为Watch GT2消息提醒怎么设置?短信微信消息提醒设置方法...

    华为Watch GT2是一款物美价廉的智能手表,同样也是一款非常实用的运动手表,那么华为watch gt2怎么设置消息提醒呢,为了不让大家错过手表上的短信.QQ和微信消息提醒,今天智能手机网小编就来分 ...

最新文章

  1. 控制行输入以下两句命令16倍速播放青年大学习
  2. linux apache cpu,linux – Apache使用100%的CPU. “ps”命令可以告诉我它在做什么吗?...
  3. [解决方案]SystemError: Parent module ‘‘ not loaded, cannot perform relative import的解决方案
  4. 基于 Python Matplotlib 模块的高质量图形输出
  5. 035、Linux下Dmidecode查看硬件信息
  6. VTK:绘图之CompareRandomGeneratorsCxx
  7. 课时27.base(掌握)
  8. 前端学习(2631):git安装
  9. java selenium_selenium 常见面试题以及答案(Java版)
  10. ESXI主机的Management网络管理了什么?
  11. python变量类型声明_python基础知识:变量的定义以及类型
  12. 转换一个字符串的编码消除乱码
  13. 博客园jquery专题
  14. YUV序列下采样以及彩色4:2:0与灰度4:0:0转换---基于matlab实现
  15. python怎么读写文件-python读写文件
  16. win10 SqlServer2008 卸载 亲测可行
  17. 利用Matlab求解函数导数并绘图
  18. js json stringify
  19. 简单方法:将iso镜像文件压缩包转化为直接可用的光盘映像文件
  20. 云班课蓝墨云网页版资源如何下载

热门文章

  1. 3037 插板法+lucas
  2. linux读取excel文件内容,如何读取EXCEL文件到内表
  3. 入选2022年BookAuthority 的最佳量子计算新书:《与量子比特共舞》
  4. 任泽平:中国收入分配报告2021最新白皮书
  5. Android动态申请Camera权限应用闪退问题
  6. linux命令获取root权限,Linux命令学习:获取root权限
  7. c语言实现求一个矩阵特征值和特征向量
  8. 自定义ListVIew添加上下更多项
  9. 用R语言对网络数据进行统计分析(四)
  10. 计算年龄:sql计算