美文网首页
站内消息-数据设计

站内消息-数据设计

作者: wyc0859 | 来源:发表于2019-06-18 11:42 被阅读0次

简单的站内消息

分表来设计。把msg内容存另一张表
表msg_send:
ID、发送者ID、接收者ID、msg_id(消息内容ID)、阅读状态、delete_time(是否删除)

表msg_content:
msg_id、title、content

适合群发不规则用户的站内消息

如群发不是所有人,不是某类人,而是根据有订单或积分>200的不规则用户,适合此项
表msg_send:
ID、发送者ID、所有接收者IDS、msg_id(消息内容ID)、date

表msg_content:
msg_id、title、content

表msg_status:
用户id、msg_id、del删除状态

查询用户A的所有消息ID
$send_ids=查询msg_send表,条件: 接收者IDS like ',uid,', 返回:msg_send的ID列

根据A的所有消息ID,查询消息内容
查询msg_content表

根据A的所有消息ID,查询消息状态
查询msg_status表关联msg_content表,条件msg_id in $send_ids and 用户id=uid and del=0
返回结果都是已读,对比后自然得出已读未读状态

这样的好处是群发一条100W人的消息,msg_send和msg_content都只各一条数据,msg_status已读一人加一条,僵尸用户不增加数据
msg_send存入所有接收者IDS格式为json的'[0,12,16,0]'

百万级用户量的站内信设计

2个表:消息表、用户消息容器表
管理员发一条站内信,系统往站内信表插入一条数据,其中发送方式区分接收的对象(0为全体发送,1为只发送给注册会员,2为只发送给企业会员,3为指定会员发送),这样,发送给全体会员的一条站内信暂时只生成了一条数据。

前台会员登陆或的时候,根据会员自身的会员类型(普通会员,企业会员)查询站内信表中属于自己的最新消息(根据自己所持消息的最新时间与消息表的发送时间做 比对)或(是否存在做对比),往消息容器中插入自身与所持消息的关联数据,默认未未读。

相关文章

  • 站内消息-数据设计

    简单的站内消息 分表来设计。把msg内容存另一张表表msg_send:ID、发送者ID、接收者ID、msg_id(...

  • 站内信设计方案

    一、背景站内信的设计基调 二、需求描述 三、系统设计功能设计 四、系统流程发送站内信获取站内信列表获取未读站内信数...

  • 基于订阅模式的系统站内消息系统数据库设计

    网站的站内消息可能有单播,组播,广播。比如余额提醒是单播,vip用户消息是组播,系统通知是广播。一般情况下这些可能...

  • 消息通知—站内信消息推送

    上一篇《消息通知推送》中总结了消息通知推送的几种方式,这次就来聊聊产品中站内信消息推送渠道的功能建设。 同样,站内...

  • laravel6.X通知消息(notifications)类的教

    利用laravel的notification类可以简便地给每个用户发自定义消息,通过邮件,站内信(数据库)或者手机...

  • 站内趣事多群消息

    全网寻找ZHANGXIANGYING 亲爱的XIANGYING大姐,您于三点五十分左右捂着肚子哇的一声哭着跑走了,...

  • 吐槽站内信息【吐舌头】

    吐个槽, 一,站内消息经常会有俩个重叠的信息存在吗? 二,人家早上八点给我打赏,站内消息打赏那块久久也不出现。直到...

  • 如何从零到一设计一个MQ消息队列

    消息队列整体设计思路 主要是设计一个整体的消息被消费的数据流。 这里会涉及到:消息生产Producer、Broke...

  • 如何从零到一设计一个MQ消息队列

    消息队列整体设计思路 主要是设计一个整体的消息被消费的数据流。 这里会涉及到:消息生产Producer、Broke...

  • Ruby 处理异常小技巧

    类似用户未读通知的站内消息,每次访问站点时都必须查询的操作,如果出现数据库查询连接异常或网络连接错误,那么程序就会...

网友评论

      本文标题:站内消息-数据设计

      本文链接:https://www.haomeiwen.com/subject/exoxqctx.html