站内信功能 java_站内信功能

针对百万级用户量的站内信系统,提出优化方案。后台管理员向全体、部分或指定用户发送站内信时,通过发送方式字段区分接收对象,减少消息队列插入量。用户登录时,根据会员类型动态插入消息容器,减少数据库负担。当指定会员发送时,直接在消息容器中写入关联数据,提高效率。方案尤其适用于低活跃度用户场景。
摘要由CSDN通过智能技术生成

1. 方案描述

该方案用于系统站内信功能模块在百万级用户量情况下的效率问题,只是后台管理员给前台用户发送站内信,用户与用户之间的发送不在讨论内。

2. 方案详情

假设系统的用户量达到了200W,活跃用户为10W,系统后台管理员要给全体用户发送一条感谢信,如果按照之前的存储方式,消息队列需要插入200W条数据,可是除了活跃的10W用户,其他用户都忘了自己有该网站的账号,他都有可能不再登陆该网站了,数据库保存的消息队列无意义了。

现表结构如下:

消息表

编号    ID    NUMBER

标题    TITLE    VARCHAR2(50)    50

正文    CONTENTS    VARCHAR2(1000)

发送状态    STATUS    NUMBER

发送日期    SEND_DATE    DATE

发送方式    SEND_TYPE    NUMBER

最新创建人    FCU    VARCHAR2(50)    50

更新人    LCU    VARCHAR2(50)    50

创建时间    FCD    DATE

最新更新时间    LCD    DATE

删除标记    DELETE_TAG    CHAR(1)    1

消息容器编号    ID    NUMBER

站内信ID    MESSAGE_ID    NUMBER

收件人ID    MEMBER_ID    NUMBER

是否已读    READ_STATUS    NUMBER

会员表

主键    id    NUMBER

会员编号    u

好的,下面是一个简单的Java内信设计思路: 1. 数据库设计 首先需要设计一个数据库用于存储内信的信息,可以考虑以下几个表: - 用户表:用于存储系统用户的基本信息,包括用户ID、用户名、密码、邮箱等信息。 - 消息表:用于存储内信的基本信息,包括消息ID、发送者ID、接收者ID、消息标题、消息内容、发送时间、是否已读等信息。 - 消息附件表:如果您想让用户可以附加文件,请设计一个消息附件表,用于存储附件的信息,包括附件ID、消息ID、附件名称、附件类型、附件大小、上传时间等信息。 2. 后台实现 在后台实现中,需要考虑以下几个方面: - 用户登陆:用户需要先登陆系统才能使用内信功能,因此需要设计一个登陆页面和相关的登陆逻辑。 - 发送消息:用户可以通过内信发送消息给其他用户,因此需要设计一个发送消息页面和相关的发送逻辑。 - 查看消息:用户可以查看自己收到的消息,因此需要设计一个消息列表页面和相关的查询逻辑,同时还需要支持分页查询。 - 删除消息:用户可以删除自己收到的消息,因此需要设计一个删除消息的逻辑。 - 附件上传和下载:如果您设计了消息附件表,那么还需要支持附件的上传和下载功能。 3. 前端实现 在前端实现中,需要考虑以下几个方面: - 用户登陆页面:设计一个用户登陆页面,可以根据实际需求添加验证码等功能。 - 发送消息页面:设计一个发送消息页面,包括消息标题、消息内容、接收者等信息。 - 消息列表页面:设计一个消息列表页面,用于显示用户收到的消息,同时还需要支持分页查询。 - 消息详情页面:设计一个消息详情页面,用于显示消息的详细信息,包括消息标题、消息内容、发送者、发送时间等信息。 - 附件上传和下载功能:如果您设计了消息附件表,那么还需要设计一个附件上传和下载功能。 以上是一个简单的Java内信设计思路,具体实现可能会根据实际需求有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值