如何使用已读/未读标志向组用户发出通知?

Posted

技术标签:

【中文标题】如何使用已读/未读标志向组用户发出通知?【英文标题】:How to make notification to group users with read/unread flag? 【发布时间】:2013-11-25 19:36:24 【问题描述】:

我正在制作一个通知系统,以便当组中的用户执行操作时,它会通知组中的所有其他用户。我希望为组中的每个用户将通知标记为“已读”或“未读”。有了它,我可以轻松地为用户检索任何未读通知并显示它。我正在考虑创建一个包含以下字段的通知表。

+----------------------+
| notification         |
+----------------------+
| id                   |
| userid               |
| content              |
| status (read/unread) |
| time                 |
+----------------------+

我的问题是:

    是否是正确的系统制作方法?因为这意味着当一个组中有 1,000 个用户时,我必须向表中插入 1,000 行。如果没有,这样做的更好方法是什么? 如果是这样的话,我该如何编写php/mysql代码来做插入行的循环?

谢谢!

【问题讨论】:

【参考方案1】:

更好的方法是通过执行以下操作将通知与用户分开:

Table Notification
------------------
not_id
time content

Table User
----------
u_id

Table NotificationStatus
------------------------
id
u_id
not_id
bool read

这样你只需要保存一个通知,这样更容易修改/编辑通知

【讨论】:

嗨,我是这个论坛的新手,请不要投反对票,只是想知道您的逻辑我如何计算用户未阅读的通知?我的意思是当用户登录并且他没有阅读通知时?假设有 3 个通知,在阅读了一个通知后,我该如何减少通知,我希望你能理解,因为英语不是我的母语, @Freddy 您将只显示用户未发现的通知:SELECT * FROM Notification WHERE not_id NOT IN ( SELECT not_id FROM NotificationStatus WHERE read);这应该会为您提供根本没有阅读的通知,此外还需要将用户 ID 放入该请求中。 感谢您的帮助,顺便说一句,是否允许在本论坛的旧帖子中评论另一个答案,谢谢 @FreddySidauruk 一般来说,如果您有具体的问题需要帮助,您可以简单地创建一个问题。评论部分通常不提供个人支持。但请务必查看Answer section of that page【参考方案2】:

考虑以下数据结构:

Table: Events
----------------
event_id
user_id (foreign key to users table)
action_id (foreign key to actions table)
time_stamp

Table: Log
----------------
user_id (foreign key to users table)
event_id (foreign key to events table)
time_stamp

逻辑应该是所有事件都被用户 X 视为未读,除非日志表包含该用户的 event_id

Actions 表可能有多种类型的操作。

您将能够通过查询日志计算并通知所有用户有多少其他用户“收到”了该操作。等等……

【讨论】:

这很好。但是使用旧方法,我可以不时删除阅读通知。这么一来,好像没那么可能了,表只会累加……【参考方案3】:

是的..你可以这样做.. 示例:假设任何用户“PQP”(user_id=1)正在添加一张照片,那么您必须在照片添加查询成功时编写您的通知查询(您需要在您希望该点作为通知的任何地方为代码上的通知编写写查询)因此您的通知表将获得新条目

id = 1                
userid =1           
content = "Photo Added By User PQP"            
status = Unread
time = currenttime

因此,在这种情况下,每当有人上传照片时,通知表就会进入其中..

【讨论】:

以上是关于如何使用已读/未读标志向组用户发出通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何将评论设置为未读/已读多个用户

头条面试官:如何设计群聊消息的已读未读功能?懵了。。

头条面试官:如何设计群聊消息的已读未读功能?懵了。。

如何正确处理聊天消息应用程序的“已读”-“未读”状态?

FB PHP SDK 将未读消息状态更改为已读和计数未读消息

outlook 已读邮件怎么设置回未读,急!!