未读消息通知逻辑上应该怎么做?

php中文网
发布: 2016-06-23 13:36:42
原创
3704人浏览过

场景就是当平台有各种新的消息通知时,平台内的成员会有未读消息的提醒。

我本来的思路是给成员一个notice的字段,默认为空,用来记录未读消息。每当平台有新消息发布时,所有成员的notice就添加该消息的id,最终notice的结构为$id,$id,$id,。有几个,就意味着有几条未读消息,然后遍历出对应的每条消息的id,当点击浏览此信息的时候,就从notice中去除对应的$id,。

这种思路合理吗?或者更好的思路是什么?

知了zKnown
知了zKnown

知了zKnown:致力于信息降噪 / 阅读提效的个人知识助手。

知了zKnown 65
查看详情 知了zKnown

回复讨论(解决方案)

或者我想到的另外一种思路,无论新发布了什么信息,直接将此信息以站内信的形式对于用户进行发送,好处是方便管理,坏处是站内信的量会骤然增多

表字段设置一个空值,发送消息之后这个值依然为空,当用户点击该消息的时候传递一个值, 改变该字段的状态

站内信骤然增多也没关系,没影响

新建一个消息表,每条消息对应一个用户id和notice,通过改变notice的值判断是否已读

每条信息一条记录,对应用户的id,以及是否已读

你要的这种消息系统只是一个留言板的扩展,只是增加了一个标识阅读权限的字段
为标识是否已读,可设一个表,用于存放 消息id 和对应的 用户id。此表可能会很长,可以每月一分表

不好意思刚看到

一个存储发布消息的 数组(消息id) 保存在 memcache
当用户登录的时候读取数据库的 已读消息 这个看你怎么设计了 多长时间发布前的消息失效

然后将用户在线时的数据交互保存到 memcache 这类缓存里,在线的时候 定时读 新消息通知 (因为你应该需要消息即时推送吧?)

memcache 数据多长时间设置为失效  当数据失效的时候 用户需要 重新读取数据库内的数据重新生成memcache中的临时缓存数据

差不多就这样吧 看看你有多少用户 要吃多少内存 多结合几种方法因为用户多 请求可能会很多 尽量减少读写数据库.

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号