實現相似微信聊天功能的mysql表設計

前言:spa

最近設計了一套聊天功能,此功能支持人對人聊天、發送圖片、查看聊天記錄、按時間展現聊天列表、最後一條聊天數據及未讀消息數設計

下面分享一下表結構及實現邏輯:code

 

表結構:blog

一、聊天主表圖片

id(主鍵id) user_id(用戶id) another_id(對方用戶id) 

 

二、聊天列表表class

id(自增id) chat_id (聊天主表id) user_id (用戶id) another_id (對方用戶id) is_online (是否在線) unread (未讀數) status (是否刪除) 

 

三、聊天詳情表test

id (自增id) chat_id (主表聊天id) user_id (消息全部者id) content (聊天內容) time (發送時間) type (消息類型) is_latest (是否是最後一條消息(默認1)) 

 

聊天邏輯:im

一、點擊聊天數據

判斷是否是第一次聊天,若是是會在主表生成一條記錄返回聊天主表id,並在聊天列表表分別插入兩條記錄,若是不是第一次聊天進入下一步分享

二、進入聊天對話框

獲取上一次聊天聊天記錄,將用戶在此對話的在線狀態改成在線

三、發送聊天信息

    3.一、先判斷對方是否在線,不在線的話對方未讀數+1

    3.二、將上一條最後一條消息狀態改成否

    3.三、往聊天詳情表插入聊天信息數據

四、刪除聊天列表

將該用戶的聊天列表刪除狀態改成刪除

相關文章
相關標籤/搜索