zoukankan      html  css  js  c++  java
  • 消息提醒系统的相关设计01

    一、评论提醒

    实现功能:他人回复自己后,右上角自动提醒“未阅读的新消息”的数量。
         点击后,清空新消息的提示。

    思路:
      在数据库查询   

    select count(id) from 评论表 where 贴子作者 = $当前用户UID and 是否被阅读 = 1 and 是否被删除 = 1

      前端判断,后端返回的json数据是否>0,若大于则显示具体数量。然后,给消息提示绑定一个方法。点击后AJAX:

    UPDATE comment SET 是否被阅读 = 2 where 贴子作者 = $当前用户UID;

      然后,前端把消息清空。

    二、系统消息
    实现功能:系统消息与“评论”类似。只不过增加了一点。

      用户收到的消息分2种。
        一种是管理员发送给全体成员的消息。(如活动通知)

        另一种是针对某个用户的通知。(举报反馈、登录异地提醒)

    数据库设计:
    数据库字段如下

      id(自增主键),发送时间,消息标题,消息内容,receive_uid消息接收对象(0是给全体人的消息,其他是针对某个用户UID),

      had_read(用户是否阅读过这条消息),评论是否被删除

    思路:
    全体消息有2种解决方案:
      1、是给遍历用户,给每个用户发消息。这种方法在设计、实现上很简单,类似上面的评论。但消耗资源比较大(看你用户多不多)。
      2、是发送给0,也就是说发送公共消息。每个人都可以接收,却只需要发送一条消息。
    但也有缺点。若用户是在你“发送全体消息”之后,注册的账号。查询消息表时,也会加载历史消息。
    不过这很容易解决。加载消息时判断“用户注册的时间戳”>“发送消息的时间戳”就可以。

    下面我根据方法2实现一下:

    首先,判断特定用户的消息是否被阅读。(同上)

    select count(id) from 系统消息表 where 接收消息的UID = $当前用户UID and 是否被阅读 = 1 and 是否被删除 = 1

    然后,给用户表新增字段。new_system_msg_count(新消息的数量)。

    每次发送全体消息,给全体成员的new_system_msg_count字段+1。
    用户刷新页面时,查询两个结果的和。显示在前端即可。
    如何清空消息就不写了。

  • 相关阅读:
    LeetCode 1122. Relative Sort Array (数组的相对排序)
    LeetCode 46. Permutations (全排列)
    LeetCode 47. Permutations II (全排列 II)
    LeetCode 77. Combinations (组合)
    LeetCode 1005. Maximize Sum Of Array After K Negations (K 次取反后最大化的数组和)
    LeetCode 922. Sort Array By Parity II (按奇偶排序数组 II)
    LeetCode 1219. Path with Maximum Gold (黄金矿工)
    LeetCode 1029. Two City Scheduling (两地调度)
    LeetCode 392. Is Subsequence (判断子序列)
    写程序判断系统是大端序还是小端序
  • 原文地址:https://www.cnblogs.com/hzjdpawn/p/12058090.html
Copyright © 2011-2022 走看看