站内信设计思路之己见(基于上百万用户)

java 实现站内信_站内信设计 最近笔者浏览网页的时候发现站内消息提醒99+,一时不知所措。点完消息后就在想消息功能是怎么实现的?1. 站内信站内信简单点就是网站内的消息通知,在网站内部实现,不用邮件,短信等服务。很多时候我们都在使用,比如系统推送的公告,用户的私信,订阅的更新等等很多根据站内信的发送范围可将其分为:**一对一:**属于私信,用户与用户之间互相发送私信,或者是系统对某一特定用户推送的内容**一对多:**属于群发,... 阅读详情

大家都知道站内信,分为少量(10-999用户),中量(1000-99999用户),大量(100W用户)不同的站内信架构,消耗存储空间,和效率也是不同的。

本人基于最大的架构,来于大家共同讨论,站内信这个小功能,究竟要怎么设计,才能更节约空间。下面是基于我个人的一些见解:

站内信的功能是:

1、用户与用户之间的交流,像邮件形式。

2、管理员给用户发站内信。

3、管理员群发消息给所有的用户(对于100W用户,你要怎么做?)

 

开门见山,先看看我设计的数据库表关系:

Message表:

MessageID:标识列;  SendId:发件人id;  RecId:收件人id;  TextId:消息id;  Status:标识已读1/未读0;

MessageText表:

TextId:标识列;  Titel:标题;  Text:信件内容;  Time:发件时间;

SysMessag表:

SysID:标识列;  CustomerID:用户标识列;  MessageID:消息标识列;  SysStatus:系统消息已读1/未读0;

一个用户需要接收多条系统信息,而每条系统信息则会有一个对应的消息状态,所以这张表是对应没条系统消息的一个状态的判断。

所有标识列都是主键

三张表关系就是这样子:

表设计就是这个样子,用到三张表。

现在需要来检验我的设计的时候了,假如,管理员给所用户群发消息的发送id=0也就是RecId = 0

我需要在Message表中插入一条记录,格式如同这样子:

这条系统消息已经记录在数据库中

现在用户都读不到这条信息,现在模拟,假如有一个用户登陆了帐号,接下来要做的就是:

  1、首先读取Recid中有没有与该用户Id匹配的消息,目前结果是没有;

  2、之后再匹配RecId=0的系统消息数量,现在有一条,MessageID=1;

  3、然后就对系统消息表SysMessag 插入现有的一条记录插入之后,也就像下面这样:

    

    SysStatus状态默认为未读0。

  4、如果有多条信息的话,就执行多条插入操作,(什么?会有很多系统消息?  你见过系统消息有上百条?就算有上百条,数据执行100次插入 我想问题也不大吧? - -||)

  5、最后取消息的总数Message+SysMessag,反馈给前台,现在是1。

模拟到此结束。     o(∩_∩)o

用户已读系统消息只能修改存于SysMessag 中的SysStatus的状态,不能去修改Message表中的状态,我想这个是可控的。

(什么?你说用户发消息的时候输入RecId=0?这个权限问题你不能控制? 那我真不知道说什么好了。^_^ )

有100W的用户现在只会依据活跃用户而占用存储空间,而不活跃的用户,根本不用再去为浪费的存储空间而烦恼了。

看完之后,想必大家对站内信设计,也有自己的看法观点,欢迎评价,提出您宝贵的意见,让我学到更多考虑问题的角度,谢谢

 

转载请注明出处,这是对作者写的文章的肯定和支持,谢谢。

*站内信设计思路 需求:公司的电商平台要做个站内信。主要功能是给供货商、经销商、分销员这些身份的人发送消息。比如供货商修改了商品的价格、上架了商品等操作。需要通知到经销商。经销商可以在自己的站内信里搜寻到消息。 一、网上站内信技术方案 站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。    “... 阅读详情

相关推荐

站内信--表设计

“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。    “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一 条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说

学会control 1216

站内信设计方案

一、背景 站内信的设计基调 二、需求描述 三、系统设计 功能设计 四、系统流程 发送站内信 获取站内信列表 获取未读站内信数量 批量已阅 全部已阅 批量删除 全部删除 五、数据库设计 站内信内容表 站内信发送表 消息来源表 六、API设计 发送站内信:POST /v1/message 获取站内信列表:GET /v1/message User-Id...

四火流年的博客 9876

网站系统 群发“站内信”的实现

在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。   “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。   “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息...

龙胜LONGAIN 4772

站内信设计

一、网上站内信技术方案 站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。 “站内信”有两个基本功能。第一,点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。第二,点到面的消息传送。管理员给用户(指定满足某一 条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。...

zlzhaoe的博客 1461

如何设计小程序的站内信功能

设计小程序的站内信功能,需要考虑用户体验、安全性、功能完整性等方面。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

站内信的数据库设计

“站内信”有两个基本功能 一:点到点的消息传送。用户给用户发送站内信,管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。 但根据不同的情况,有不同的设计模式

设计篇--站内信设计思路之己见(基于上百万用户)

大家都知道站内信,分为少量(10-999用户),中量(1000-99999用户),大量(100W用户)不同的站内信架构,消耗存储空间,和效率也是不同的。 本人基于最大的架构,来于大家共同讨论,站内信这个小功能,究竟要怎么设计,才能更节约空间。下面是基于我个人的一些见解: 站内信的功能是: 1、用户与用户之间的交流,像邮件形式。 2、管理员给用户发站内信。 3、管理员群发消息给所...

weixin_30871293的博客 519

关于站内信(操作日志)的一套代码实现

关于站内信(操作日志)的一套代码实现

站内信 java_站内信的实现思路表的设计

“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。“站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一 条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”...

weixin_34138102的博客 1790

STM32F4的sct文件理解

原文地址http://blog.sina.com.cn/s/blog_898f36590100ya2l.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

weixin_34008805的博客 995

【Python机器学习实战】 | 基于PCA主成分分析技术读入空气质量监测数据进行数据预处理并计算空气质量综合评测结果

主成分分析(Principal Component Analysis, PCA)是一种常用的机器学习和数据分析技术,用于降低数据维度、识别数据中的模式、发现变量之间的关系等。

一伦明悦的博客 1263

java 实现站内信_群发站内信实现

存储优化第一种情况,站内的用户是少量级别的。(几十到上百)这种情况,由于用户的数量非常少,因此,没有必要过多的考虑数据库的优化,采用简单的表格,对系统的设计也来的简单,后期也比较容易维护,是典型的用空间换时间的做法。数据库的设计如下:表名:MessageID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);Message:站内信内容;Statue:站内信的查看状...

weixin_30476083的博客 2742

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1360

站内信的实现:数据库的设计

工作中遇到一个站内信的设计问题。本来想往上查查有啥资料没。没想到看了别人的思路,自己没思路了。就直接转载了。 首先,解释一下什么叫站内信? 百度百科中的解释:      “站内信”是为方便会员商务信件往来而设的服务功能,类似于邮箱,主要由收件箱、发件箱、草稿箱和垃圾箱三部分组成,但该功能仅对网站的注册会员开放。    “站内信”不同于电子邮件,电子邮件通过专门的

刘荣飞的博客 2729

ROS2学习笔记(二)-- 多机通讯原理简介及配置方法

简单介绍ROS2多机通信原理以及配置注意事项

aibingjin的博客 1万+

OpenCV实战:从边缘检测到透视校正,打造智能文档扫描仪(Python代码详解)

本文详细介绍了如何使用OpenCV和Python从零开始构建一个智能文档扫描仪。通过边缘检测、透视校正和文字增强等核心技术,将倾斜、模糊的文档照片转换为清晰、方正的高质量扫描图像。文章提供了完整的代码实现和参数调优经验,帮助开发者打造稳定、高效的文档处理工具。

flower的专栏 695

群发“站内信”根据不同用户量,不同的数据库设计原理

在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。   “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。   “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息

ChenAiZiTeng的专栏 1268

【前端圭臬】二:你知道的和不知道的 HTML

关于 HTML,说几个你可能不太关注的问题。

Evan 的博客 4758

群发“站内信”的实现

在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。   “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。   “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)

caomiao2006的专栏 1584

假新闻检测论文分享(25)L-DefenseExplainable Fake News Detection With Large Language Model

现有的假新闻检测工作主要集中在通过深度网络结合多种信息来学习假新闻的潜在特征,如可信度、立场、传播模式、额外知识、域外数据等。尽管他们在探测上取得了成功,但受限于他们的黑箱性质,他们无法提供任何对公众至关重要的理由。为解决这一问题,一些研究致力于可解释假新闻检测(EFND),旨在同时生成准确性预测和解释。许多工作通过注意力机制在相关报道中注意突出特别的单词、短语或句子来提供可解释性。然而,这些工作只发现了对最终预测有高贡献的区域,缺乏直观和可信的解释。

weixin_41964296的博客 732

手把手教你学simulink(31.17)--双向DCDC电源场景示例:基于simulink 的双向DCDC应用:车载充电器的pi控制

通过引入PI控制器,系统可以更精确地控制电压和电流,确保充电和放电过程的稳定性和高效性。

MHD0815的博客 205

站内信“数据库设计思路”

在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。   “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。   “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)

ikownyou的博客 1590

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 日期格式化和Calendar.set(...)和Calendar.add(...)方法的使用
下一篇: iBatis 到 MyBatis区别
meng0911
博客等级 码龄15年 15粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值