zoukankan      html  css  js  c++  java
  • 实现类似微信聊天功能的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、删除聊天列表

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

  • 相关阅读:
    硬件调试软件
    ICMP(Internet Control Message Protocol)
    算法网站
    下载安装
    netcat 实现端口转发
    mqtt 连接工具
    Linux(CentOS7)安装zip、unzip命令
    awk 两个字符串互换位置
    创建一个swift项目
    屏幕录制
  • 原文地址:https://www.cnblogs.com/lamp01/p/9529783.html
Copyright © 2011-2022 走看看