1. 程式人生 > >實現類似微信聊天功能的mysql表設計

實現類似微信聊天功能的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、刪除聊天列表

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

出處:http://www.cnblogs.com/lamp01/