消息提醒系統的相關設計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。
用戶刷新頁面時,查詢兩個結果的和。顯示在前端即可。
如何清空消息就不寫了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM