开发者社区> 问答> 正文

当发送一条系统消息时,所有的用户都会出现一条未读消息,这个消息可以标记为已读或者删除,那么这如何进行数据库设计?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

展开
收起
李博 bluemind 2019-04-18 14:21:12 4126 0
1 条回答
写回答
取消 提交回答
    1. 设计一张消息表,用来存储具体每条消息,不管是系统消息还是对私消息
    2. 设计一张消息处理日志表,日志设计(1: 已读、-1:已删状态)
    3. 当用户读取该消息时,在消息日志表中添加一条(用户id,消息id,消息状态已读的数据)
    4. 当用户删除谋条消息时,在消息日志表中查询是否有该条用户已读日志,如果有就更新状态为-1:删除,如果没有记录则直接添加一条状态为-1:删除的记录
    5. 读取消息列表的时候,级联查询对应用户id的消息表和消息日志表,并且限制查询条件为日志操作状态>0,就可以列表查询出未删除的同时标记已读和未读的数据列表
    2020-05-10 17:25:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
微信SQLite数据库损坏恢复实践 立即下载
重新出发:阿里云数据库开源整体策略 立即下载
数据库异地备份及不还原快速查询备份集最佳实践 立即下载