设计优点,发系统消息给全站用户只需一条记录,不需要每个用户都插入,解决用户量大的问题
登录用户只显示未读的消息。用户查看未读消息后,将消息插入消息回收站表标记为已读,uid与该用户绑定,因此回收站表没有uid=system的记录。
2)已读消息列表:实现方法有2种取其一即可
2.1)插入消息回收站表并删除用户的未读消息表对应记录(非system)
2.2)插入消息回收站表
删除的消息列表:只插入消息回收站表,
未读消息:当前用户没有读过的消息
未读消息/消息表
DROP TABLE IF EXISTS `msg`; CREATE TABLE `msg` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `mail` varchar(60) NOT NULL DEFAULT 'system' COMMENT '邮箱:默认为system表示发给所有用户', `title` varchar(50) DEFAULT NULL COMMENT '标题', `content` text NOT NULL COMMENT '内容', `createtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='公告表'; INSERT INTO `msg` VALUES (1,'system','系统公告','今天天气不错',1394421260); INSERT INTO `msg` VALUES (2,'test@163.com','用户i','aaaaaaaaaaaa',1394421299); INSERT INTO `msg` VALUES (3,'danny@qq.com','用户公告heihei','aaaaaaa',1394421299); INSERT INTO `msg` VALUES (4,'system','系统公告2','第二条消息',1394421260);
已读消息或删除消息
DROP TABLE IF EXISTS `msgrecycle`; CREATE TABLE `msgrecycle` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` varchar(200) NOT NULL COMMENT '用户id', `msgid` int(11) NOT NULL COMMENT '消息id', `isread` int(1) unsigned NOT NULL DEFAULT '0' COMMENT '0-未读 1-已读', `isdelete` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-未删除 1-删除', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; LOCK TABLES `msgrecycle` WRITE; INSERT INTO `msgrecycle` VALUES (1,'test@163.com',2,1,0); INSERT INTO `msgrecycle` VALUES (2,'danny@qq.com',3,0,1);//删除的未读消息 INSERT INTO `msgrecycle` VALUES (3,'test@163.com', 1, 1, 0); //test@163.com用户已读的system消息 UNLOCK TABLES;
显示用户已读消息mr.uid='test@163.com'
2.2)
select * FROM msg m left join msgrecycle mr on m.id=mr.msgid where (m.mail='system' or m.mail='test@163.com') and mr.uid='test@163.com' and isread=1 and isdelete=0
2.1)
select * FROM msgrecycle where uid='test@163.com' and isread=1 and isdelete=0
显示用户未读消息 = 消息回收站表没有读过的用户消息记录+消息回收站表没有读过的系统消息记录
消息回收站表没有读过的用户消息记录
select m.* FROM msg m left join msgrecycle mr on m.id=mr.msgid where m.mail='test@163.com' and mr.id is null消息回收站表没有读过的系统消息记录
select * FROM msg where mail='system' AND id not in (select m.id FROM msg m left join msgrecycle mr on m.id=mr.msgid where m.mail='system' and mr.uid='test@163.com' and isread=1 and isdelete=0)
相关推荐
“站内信”有两个基本功能 一:点到点的消息传送。用户给用户发送站内信,管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。 但根据不同的情况,有不同的设计模式
剖析讲述如何设计一个站内消息系统
发送全站消息 三、系统设计 功能设计 功能 功能 接⼝ 接⼝ 详情 详情 发送站内信 POST /v1/message 校验module_name,校验title content receiver_name 长度 获取站内信列表 GET / 统计信息 暂⽆ 四、系统流程 发送...
站内信系统数据库设计 站内信系统数据库设计 站内信系统数据库设计 很多⽹站系统(cms系统、sns系统等),都有站内信的功能。 站内信不同于电⼦邮件,电⼦邮件通过专门的邮件服务器发送、保存。⽽站内信是系统内的消息...
实时消息:实现站内用户发送接收消息,实时交互 无需刷新:即时消息显示无需刷新页面,完全同步 开放性强:接口开放程度高,适用范围广,非常适合各种二次开发 机制领先:数据处理机制十分先进,不会因为大...
而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。 “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息...
Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 2)Ping命令是测试主机是否可达命令。主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol ...
6:站内短信,用户和用户之间可以通过站内短信进行沟通互动、 后台部分功能介绍 1:管理登录,管理员,通过这个用户名和密码,登录后台进行管理 2:公告管理,管理员可以管理公告信息 3:用户管理,管理员可以管理...
4.1.2 站内消息 8 4.1.3 会员注册 8 4.1.4 考研模块 8 4.1.5教师指导模块 8 4.1.6交流沟通模块 8 4.2后台管理设计 9 4.2.1 后台界面 9 4.2.2系统管理员 9 4.2.3 站内信息管理 9 4.2.4 考研资源模块管理 9 4.2.5 教师...
4.1.2 站内消息 8 4.1.3 会员注册 8 4.1.4 考研模块 8 4.1.5教师指导模块 8 4.1.6交流沟通模块 8 4.2后台管理设计 9 4.2.1 后台界面 9 4.2.2系统管理员 9 4.2.3 站内信息管理 9 4.2.4 考研资源模块管理 9 4.2.5 教师...
4.1.2 站内消息 8 4.1.3 会员注册 8 4.1.4 考研模块 8 4.1.5教师指导模块 8 4.1.6交流沟通模块 8 4.2后台管理设计 9 4.2.1 后台界面 9 4.2.2系统管理员 9 4.2.3 站内信息管理 9 4.2.4 考研资源模块管理 9 4.2.5 教师...
一个网站的核心通常是站内新闻,通过站内新闻的展示,可以让系统在第一时间发布本站的最新的动态消息,也可以让用户在第一时间能够了解到最新的站内新闻相信。站内新闻是系统首页一个重要的功能模块,能够展示网站的...
在一个规模较大的商店中,如果没有这项功能,用户将很难找到所需要的 商品,这个"网上拍卖系统"的吸引力将会因此大大降低,为了适应拍卖者的需要,要实 现商品的全站搜索,只要在全站搜索中键入关键字就可以找到与它...
毕业设计,基于SpringBoot+Vue+MySql...本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得微服务在线教育系统管理工作系统化、规
可以提供学习论坛的论坛公告发布、站内发送消息、站内搜索、论坛管理、论坛设置、数据处理、管理操作等功能。本毕业设计目的是对一个虚拟系统的设计,学生完成本专业基础课程、专业课程及实践课程的一次综合性的练习...
本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的...
毕业设计,基于SpringBoot+Bootstrap+MySql开发的素材分享网站,内含Java完整源代码,数据库脚本 这是一个多用户的资源共享平台,是一个专为文件共享而设计的新...消息通知管理 查看审核进度 包含游客所具备的全部功能