首页 > 其他分享 >设计思路-已读未读设计

设计思路-已读未读设计

时间:2022-09-19 10:44:21浏览次数:64  
标签:name 未读 Column private 已读 设计 ticket

需求

1.针对工单,或者会话已读未读设计。

2.未读数量

 

 

方案一

首先想到的可能是在消息表的每个字段上设计一个已读未读字段,但是消息维护成本和频率高,比如整个sass大量的发送消息

方案二

如工单

设计阅读记录表

@MappedSuperclass
public class AbstractTicketViewRecord extends Entity {
    private static final long serialVersionUID = 8794872508619902240L;

    @Id
    @Column(name = "uid")
    private String uid;

    /**
     * 工单Id
     */
    @Column(name = "ticket_id")
    private Integer ticketId;

    /**
     * 用户Id
     */
    @Column(name = "user_id")
    private Integer userId;

    /**
     * 企业Id
     */
    @Column(name = "provider_id")
    private Integer providerId;

    /**
     * 最后一次阅读时间
     */
    @Column(name = "view_at")
    private Timestamp viewAt;

}

实现需求一消息的已读未读表示

当用户获得web页面焦点 则更新最后一次阅读时间,然后服务端发送websocket给其他用户更新这个用户的最后一次阅读时间,通过时间判断此消息已读未读

实现需求二未读消息总数

表连接消息表就行了

select count(1) from `ticket_view_record` r 
join `ticket_comment` c where r.`ticket_id` =c.`ticket_id` 
and r.`view_at` <c.`created_at`  and c.`user_id` !=1885141 and r.`user_id`=1885141

 

标签:name,未读,Column,private,已读,设计,ticket
From: https://www.cnblogs.com/LQBlog/p/16706884.html

相关文章

  • 设计模式之备忘录模式
    无论是我们在使用word还是记事本,系统都会为我们提供撤销的功能,这几乎是人人都会使用到的功能,而在我们实际开发中,会不会存在一个很复杂的对象,当更改了其中的某一个属性以后,......
  • 我的设计模式之旅、02 单例模式(第二次更新)
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结什么是单例模式单例模式(SingletonPattern)属于创建型模式,它提供了一种创建对象的最佳方式。......
  • android小项目-菜谱APP-首页面设计上(RecyclerView+OKHttp+GSON+Glide)
    在上一节中,已经搭建好了导航栏,现在开始完成首页内容的设计。任务描述:实现从网络HTTP接口获取菜谱数据,并完成菜谱App主页面的布局设计。设计思路:1.数据层面,使用showapi的......
  • 我的设计模式之旅、12 原型模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题如果没有原型模式,当我们复制复杂对象,在新建相同类的对象,遍历原始对象中的所有成员变......
  • 我的设计模式之旅、11 生成器(建造者)模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题没有生成器模式的情况下在构建不同形式的复杂对象时的问题:如果为每种可能的对象都......
  • 数据库设计
    任务一、业务描述图书管理员功能:(一)图书管理功能:1.对图书库中的图书入库操作2.删除图书库中的图书3.查询图书库中的图书4.修改图书编号或类别(二)信息维护功能:1.查看......
  • 《信息安全系统设计与实现学习笔记3》
    一、知识点归纳以及自己最有收获的内容1、知识点归纳总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?程序设计语言有3个......
  • 2022-2023-1 20221312 《计算机基础与程序设计》第三周学习总结
    班级链接:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)作业要求:2022-2023-1《计算机基础与程序设计》教学进程-娄......
  • 第04周 预习:面向对象设计、继承与Object
    1,为什么说Java中的所有类都is-aObject?Object类是所有类的始祖,Java中的每一个类都扩展了Object.2,一,在JDK文档中查找Object的toString方法。说一说,该方法有什么用?-->t......
  • 2022-2023-1 20221408《计算机基础与程序设计》第三周学习总结
    这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标......