标记用户是否已读

我现在有一条消息发布出去,假如有一万人同时接收到,我现在在数据库 增加了一个 字段 存储已读过的用户 的用户名 用逗号隔开, 假如这么多用户的话 那么 这个标记字段长度就得非常长了 这样就不合理了。 所以我想问的是有没什么比较好的方案 对于同一条消息 标记当前用户是否已读过

RISEBY
浏览 714回答 6
6回答

尚方宝剑之说

看看这个

蓝山帝景

可以用bitmap来存储,把用户id 减去最小的用户id + 1得出的id,在相应的位上用0、1表示是否已读就哦了

喵喵时光机

你可以设计一张 user_id msg_id status的表,存储相应的状态。如果数据库压力大,可以考虑用redis缓存+本地缓存解决。

噜噜哒

如果用户量不大的话,可以设计一张用户消息表,每给一个用户发一条消息就存储到里面,已读未读就一个字段标识就可以了。用户量大的话会造成很大的存储浪费,可以记录一张消息-用户表,里面只记录读了这条消息的用户,只不过在显示某个用户消息的时候需要做点处理。

九州编程

Redis 消息id作为key存 true 表示未读 读消息的时候吧这个 key 删掉
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java