zoukankan      html  css  js  c++  java
  • 消息软删除


          前段时间做个小东西,涉及到消息的软删除。比如A和B之间发的消息存到一张表中,A可以删除自己收件箱中的这条消息,但是这条消息还存在B的收件箱中,直到B也删除这条消息。比如张三和李四用手机发短信,张三清空自己的收件箱之后,不影响李四的收件箱。
    其实,做软删除,只不过是设置一个标志位而已,比如,0表示未删除,1表示删除。而我的需求是实现到底谁删除了。
    数据库设计如下:

    id   消息id
    uid_from   发送方id
    uid_to     接收方id
    message   消息内容
    sendtime    发送时间
    isdel     是否删除,默认值为0

    实现方法为:

          如果是发送方删除消息,则用1|isdel(注:| 表示异或),如果接收方删除消息,则用2|isdel,
    原始isdel为0,

    如果只有发送方删除消息,则isdel变为1,

    如果只有接收方删除消息,则isdel变为2,

    如果发送方和接受方都删除了,则isdel变为3。

    sql语句如下:

    1 update user_letter set isdel = isdel | (if(uid_from = $userid),1,2))
    2 where $id = id and $userid = uid_from or $userid = uid_to

    $id表示消息id,$userid 表示用户id,通过if语句判断,用户id是该消息的发送方还是接收方,即if(uid_from = $userid),1,2),if语句通过PHP传到mysql是可以运行的,已测试过。

     

    小弟水平有限,欢迎各位吐槽。

     

  • 相关阅读:
    Windows下Yarn安装与使用
    论文阅读Graph Convolutional Matrix Completion
    如何快速查询中科院JCR分区和汤森路透JCR分区
    Implement GAN from scratch
    PyCharm将main.py解析成text文件的解决方法
    理解PyTorch的自动微分机制
    mcast_set_if函数
    mcast_get_if函数
    mcast_unblock_source函数
    mcast_block_source函数
  • 原文地址:https://www.cnblogs.com/cxybjfu/p/3125454.html
Copyright © 2011-2022 走看看