当前位置:  开发笔记 > 编程语言 > 正文

对MySql和PHP中的用户通知系统的建议

如何解决《对MySql和PHP中的用户通知系统的建议》经验,为你挑选了2个好方法。

我正在实施一个通知系统,看看这些建议是否有效,如果一个比另一个更好或者有更好的解决方案:

通知将添加到数据库中.访客/可识别用户登录或使用该站点.他们会收到他们以前从未见过的通知,可以选择关闭或稍后阅读.

通知表存储通知文本和Id.

选项1:警报表存储已阅读通知的所有用户

选项2:警报表存储未读取通知的所有用户

这些选项是不是很重要,最好是添加潜在的100,000多个警报,并且当这些用户丢弃或与通知交互时,它们的状态会被更改或警报被删除.这可能会变成一张非常大的桌子......

什么是基于用户活动的自定义通知的更具可扩展性的设置?



1> cletus..:

我不这样做.我会为每个(用户,通知)存储一条记录,并将每条记录标记为已读或未读.然后,您可以记录它们何时阅读,这可能很重要,具体取决于您的应用程序(例如,如果您需要某种审计跟踪).

100k记录不是很大.在获得至少1000万条记录之前,不要担心大小.如有必要,可以在某些时候归档.但是你应该对你产生1000万条记录的速度做一些估计.如果是3天,那么你有问题.如果它是3年,那么你没有.

当然,此选项在单独的表中包含通知文本.

当您为用户选择未读消息(索引)时,这也应该在更高数量的消息中非常好地扩展,并且可以加入以获取通知文本(如果您的表是数千万条记录大小)或选择它们然后分别选择消息.

对(用户,通知)表进行分区很简单:您可以根据用户范围进行分区.

当用户删除邮件时,通常您应该将其标记为已删除而不是实际删除邮件.大多数情况下,没有太多理由删除数据库中的任何内容.



2> 小智..:

我正在编写我的网站,并有同样的问题,但我这样解决了自己:

    将所有记录存储在通知表中.

    Read/Unread = true/false

    CRON作业:如果用户有超过50个通知,则删除旧的10个通知.

我认为Facebook定期运行一个cron作业来删除我们在达到限制通知后无法看到的旧通知.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有