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


前言:

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

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

 

表結構:

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、刪除聊天列表

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

 


免責聲明!

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



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