当发送一条系统消息时,所有的用户都会出现一条未读消息,这个消息可以标记为已读或者删除,那么这如何进行数据存储的?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

当发送一条系统消息时,所有的用户都会出现一条未读消息,这个消息可以标记为已读或者删除,那么这如何进行数据存储的?

李博 bluemind 2019-02-20 12:55:32 2822

当发送一条系统消息时,所有的用户都会出现一条未读消息,这个消息可以标记为已读或者删除,那么这如何进行数据存储的?

存储
分享到
取消 提交回答
全部回答(4)
  • camelweiming
    2019-07-17 23:28:44

    一般系统消息在用户侧只记录读过的id即可,读取前几十条系统消息再过滤就行了,这种消息没那么重要,时间长的不不管它了

    1 0
  • griffin_curry
    2019-07-17 23:28:44

    设计两张表
    一张是消息表,比如有消息id(全局唯一)和消息内容
    一张是状态表,有消息id,用户id和消费状态(已读,删除,未读之类的)

    系统管理员查询一条消息的消费情况,可以通过消息id,从状态表中查询出所有用户的消费状态
    用户想查询自己的历史一段时间的消息记录,可以通过用户id查询状态表,联合消息表,查询出消息内容

    0 0
  • 游客uxppyzmtvi264
    2019-07-17 23:28:44

    消息可以有两个库来保存,一个是消息存储库,用于全量保存所有会话的消息,主要用于支持消息漫游。另一个是消息同步库,主要用于接收方的多端同步。
    消息从发送方发出后,经过服务端转发,服务端会先将消息保存到消息存储库,后保存到消息同步库。完成消息的持久化保存后,对于在线的接收方,会直接选择在线推送。但在线推送并不是一个必须路径,只是一个更优的消息传递路径。
    对于在线推送失败或者离线的接收方,会有另外一个统一的消息同步方式。接收方会主动的向服务端拉取所有未同步消息,但接收方何时来同步以及会在哪些端来同步消息对服务端来说是未知的,所以要求服务端必须保存所有需要同步到接收方的消息,这是消息同步库的主要作用。对于新的同步设备,会有消息漫游的需求,这是消息存储库的主要作用,在消息存储库中,可以拉取任意会话的全量历史消息。
    可以使用阿里云的表格存储云产品。

    0 0
  • cxxzly
    2019-07-17 23:28:43

    先建立一个每个用户和这个消息读状态的消息表,外键关联这个消息,当用户读取的时候,修改该用户的状态字段
    这样可以避免数据冗余,另外一个方法就是每个人发送一个消息副本,这样就是消息复制太多

    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题
推荐课程