实现相似微信聊天功能的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.三、往聊天详情表插入聊天信息数据

四、删除聊天列表

将该用户的聊天列表删除状态改成删除

相关文章
相关标签/搜索