我在我的一个 PHP/MySQL 站点上有一个简单而通用的内部消息传递服务,具有唯一的messageID
, from
, to
, subject
, message
, time
, 和isRead
.
一般来说,检查用户是否有新邮件的最佳方法是什么?
我是否应该在主用户表上存储一个简单的二进制触发器,当有人向他们发送消息时切换为 1,然后让用户在每次页面加载时检查该 1,如果有,提醒他们注意新邮件(并在他们进入收件箱时将其设置为 0)?但是,如果它是垃圾邮件并且我们在用户阅读之前将其删除怎么办?
或者我应该存储messageid
用户阅读的最后一条消息,然后检查最新消息,看看它是否比他阅读的最后一条消息更新,如果是,提醒他?但是,我应该如何以及在哪里存储这些信息?
考虑到我们必须在每次页面加载时检查新消息,是否还有另一种更有效的方法?
如果用户转到他的收件箱,它不应再向他显示他检查时收件箱中的任何邮件都有“新邮件”,无论他是否实际点击阅读它们。
谢谢!
编辑:我的一些用户通过没有 cookie 甚至 Javascript 的非常基本的手机访问我的网站,所以请记住这一点。