未读消息提醒的业务该怎么设计?

Jia_Li_z 2019-03-18 01:47:38

** 最近再写一个未读消息的业务,就是把当前登陆用户所有的未读评论数量
返回给前端**
数据库中没有这个字段,感觉太多余,大佬让我弄个计数器去实现,但是不知道从何下手?
希望有高人解答一下!
...全文
507 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
对,沟通一下
Jia_Li_z 2019-03-18
  • 打赏
  • 举报
回复
引用 10 楼 stacksoverflow 的回复:
[quote=引用 9 楼 it-zjl 的回复:] [quote=引用 7 楼 nayi_224 的回复:] 如果没有状态字段的话,用户连续读取了2次同一个未读消息,你的未读消息是减1还是减2?还是说你想把所有的未读消息id都写到内存?
引用 8 楼 stacksoverflow 的回复:
[quote=引用 6 楼 it-zjl 的回复:] [quote=引用 5 楼 stacksoverflow 的回复:] [quote=引用 4 楼 it-zjl 的回复:] [quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。[/quote] 我也是想加个状态,但是组长说大佬说没必要,就是计数器,获取下数量。我也很无奈[/quote] 你可以先提一个方案给你的组长,比如当前登录用户的消息总数count一下, 用这个总数减去已读的消息数就是未读的消息数。 而这个已读的消息数,点一个消息加1,但你总要存到一个地方防止重复点击吧,系统缓存,分布式缓存还是库里,问一下需求,可能你理解的需求不对。[/quote] 需求就是,我只需要把评论总数量和未读数量返回给前端,只要用户点击未读数量的提示框,未读消息就全部变成已读的,就是本身返回的是已读集合,点了之后,就把未读的也加入已读集合进去。[/quote] 关键是你已读的状态存哪?[/quote]
引用 11 楼 nayi_224 的回复:
弄一个静态map,key是用户id,未读数是value。++ =0,线程应该不用考虑。 关键是你重启项目之后,未读数在哪取?或者关闭项目后未读数存哪里?
这种问题真是棘手,我去找组长商量吧!
nayi_224 2019-03-18
  • 打赏
  • 举报
回复
弄一个静态map,key是用户id,未读数是value。++ =0,线程应该不用考虑。 关键是你重启项目之后,未读数在哪取?或者关闭项目后未读数存哪里?
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
引用 9 楼 it-zjl 的回复:
[quote=引用 7 楼 nayi_224 的回复:] 如果没有状态字段的话,用户连续读取了2次同一个未读消息,你的未读消息是减1还是减2?还是说你想把所有的未读消息id都写到内存?
引用 8 楼 stacksoverflow 的回复:
[quote=引用 6 楼 it-zjl 的回复:] [quote=引用 5 楼 stacksoverflow 的回复:] [quote=引用 4 楼 it-zjl 的回复:] [quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。[/quote] 我也是想加个状态,但是组长说大佬说没必要,就是计数器,获取下数量。我也很无奈[/quote] 你可以先提一个方案给你的组长,比如当前登录用户的消息总数count一下, 用这个总数减去已读的消息数就是未读的消息数。 而这个已读的消息数,点一个消息加1,但你总要存到一个地方防止重复点击吧,系统缓存,分布式缓存还是库里,问一下需求,可能你理解的需求不对。[/quote] 需求就是,我只需要把评论总数量和未读数量返回给前端,只要用户点击未读数量的提示框,未读消息就全部变成已读的,就是本身返回的是已读集合,点了之后,就把未读的也加入已读集合进去。[/quote] 关键是你已读的状态存哪?
Jia_Li_z 2019-03-18
  • 打赏
  • 举报
回复
引用 7 楼 nayi_224 的回复:
如果没有状态字段的话,用户连续读取了2次同一个未读消息,你的未读消息是减1还是减2?还是说你想把所有的未读消息id都写到内存?
引用 8 楼 stacksoverflow 的回复:
[quote=引用 6 楼 it-zjl 的回复:] [quote=引用 5 楼 stacksoverflow 的回复:] [quote=引用 4 楼 it-zjl 的回复:] [quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。[/quote] 我也是想加个状态,但是组长说大佬说没必要,就是计数器,获取下数量。我也很无奈[/quote] 你可以先提一个方案给你的组长,比如当前登录用户的消息总数count一下, 用这个总数减去已读的消息数就是未读的消息数。 而这个已读的消息数,点一个消息加1,但你总要存到一个地方防止重复点击吧,系统缓存,分布式缓存还是库里,问一下需求,可能你理解的需求不对。[/quote] 需求就是,我只需要把评论总数量和未读数量返回给前端,只要用户点击未读数量的提示框,未读消息就全部变成已读的,就是本身返回的是已读集合,点了之后,就把未读的也加入已读集合进去。
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
引用 6 楼 it-zjl 的回复:
[quote=引用 5 楼 stacksoverflow 的回复:] [quote=引用 4 楼 it-zjl 的回复:] [quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。[/quote] 我也是想加个状态,但是组长说大佬说没必要,就是计数器,获取下数量。我也很无奈[/quote] 你可以先提一个方案给你的组长,比如当前登录用户的消息总数count一下, 用这个总数减去已读的消息数就是未读的消息数。 而这个已读的消息数,点一个消息加1,但你总要存到一个地方防止重复点击吧,系统缓存,分布式缓存还是库里,问一下需求,可能你理解的需求不对。
nayi_224 2019-03-18
  • 打赏
  • 举报
回复
如果没有状态字段的话,用户连续读取了2次同一个未读消息,你的未读消息是减1还是减2?还是说你想把所有的未读消息id都写到内存?
Jia_Li_z 2019-03-18
  • 打赏
  • 举报
回复
引用 5 楼 stacksoverflow 的回复:
[quote=引用 4 楼 it-zjl 的回复:] [quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。[/quote] 我也是想加个状态,但是组长说大佬说没必要,就是计数器,获取下数量。我也很无奈
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
引用 4 楼 it-zjl 的回复:
[quote=引用 3 楼 stacksoverflow 的回复:] [quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....[/quote] 你现有的系统已经是每个用户每个消息一条记录了,更新的话也只是用户看一下更新一条记录,不知道你担心什么? 既然存在区分已读和未读的需求那这个状态毕竟要保存到一个地方,缓存也好,数据库也好,mongoDB也好。
Jia_Li_z 2019-03-18
  • 打赏
  • 举报
回复
引用 3 楼 stacksoverflow 的回复:
[quote=引用 2 楼 it-zjl 的回复:] [quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?[/quote]要是能加个状态的话我就不问了,主要是考虑到加状态的话,每次还要更新表,如果几百上千条未读....
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
引用 2 楼 it-zjl 的回复:
[quote=引用 1 楼 stacksoverflow 的回复:] 这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。[/quote] 那为什么不能再加个状态?
Jia_Li_z 2019-03-18
  • 打赏
  • 举报
回复
引用 1 楼 stacksoverflow 的回复:
这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?
肯定有关联的,每条消息都有一个user code,代表所属用户,但是没用状态字段或者是消息状态表。
stacksoverflow 2019-03-18
  • 打赏
  • 举报
回复
这取决于你的目前系统的消息是怎么存的? 和用户有没有关联?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧