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

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

  • 相关阅读:
    SQLite3 of python
    爬虫半成品
    python初体验 ——>>> 模拟体育竞技
    文件操作
    numpy 库简单使用
    numpy 与 matplotlib 的应用
    面向对象的详细解读
    使用python进行微信好友分析
    我的第一个爬虫实验
    排球训练营
  • 原文地址:https://www.cnblogs.com/lamp01/p/9529783.html
Copyright © 2011-2022 走看看