首页 > 一条信息如何使不同的人显示已读与未读?

一条信息如何使不同的人显示已读与未读?

我的客户有一个拜访的功能,拜访信息之后会有一个提示,但是这个客户不光我能看到,我的领导也能看到,我想做的是我读完之后在我这边把信息提示去掉,其他人不改变未读状态,领导读完把领导那边的信息提示去掉,两边都不干涉,应该怎么去完成这个功能啊,求个思路


也可以把阅读记录放到本地,用js进行判断改文章是不是已经阅读过了


如果不考虑性能,且消息要发给的人不多的话,我倒有个思路。
把客户发的消息加个“阅读人”字段,记录读过该消息的用户ID。
(现在想想真是个糟糕的思路,因为每次想检索某用户未读的消息,都得把所有消息“阅读人”字段搜索一遍……)

新思路:
建立一个消息关系表,如果用户“拜访”,则将该消息发送至需要接受的所有用户(建立行)。如果已读读完则删除行(或者标记“1”)。
(这是目前一些论坛的思路,不过也是接收者不多的前提下。)


上面都已经给出具体实现了。其实你该想下,信息本身是不应该有已读未读属性的,已读未读是人的行为,应该从人这个对象上解决问题。


我觉得这个应该从数据表关联下手,只要给信息表用户表之间建立多对多的关系就行了。具体做法是建立一个新表,此表把用户id以及对应的信息id记录下来,已读一条就新增一条数据。建立好索引,即使数据量大读取也很快的。不过应该这个数据表的结构还能进一步优化


用redis很容易实现,建一个set,键值为read:信息ID,值为用户ID,每次阅读信息后将用户ID写入这个set中,性能飞起


很简单,建立一个表,专门记录用户阅读了的文章id。这是实现功能
若考虑到性能问题,分表。
没啥好纠结的

【热门文章】
【热门文章】