前言:
最近設計了一套聊天功能,此功能支持人對人聊天、發送圖片、查看聊天記錄、按時間展示聊天列表、最后一條聊天數據及未讀消息數
下面分享一下表結構及實現邏輯:
表結構:
1、聊天主表
id(主鍵id) user_id(用戶id) another_id(對方用戶id)
2、聊天列表表
id(自增id) chat_id (聊天主表id) user_id (用戶id) another_id (對方用戶id) is_online (是否在線) unread (未讀數) status (是否刪除)
3、聊天詳情表
id (自增id) chat_id (主表聊天id) user_id (消息所有者id) content (聊天內容) time (發送時間) type (消息類型) is_latest (是不是最后一條消息(默認1))
聊天邏輯:
1、點擊聊天
判斷是不是第一次聊天,如果是會在主表生成一條記錄返回聊天主表id,並在聊天列表表分別插入兩條記錄,如果不是第一次聊天進入下一步
2、進入聊天對話框
獲取上一次聊天聊天記錄,將用戶在此對話的在線狀態改為在線
3、發送聊天信息
3.1、先判斷對方是否在線,不在線的話對方未讀數+1
3.2、將上一條最后一條消息狀態改為否
3.3、往聊天詳情表插入聊天信息數據
4、刪除聊天列表
將該用戶的聊天列表刪除狀態改為刪除