【问题标题】:Effective method on broadcasting the same notification to all the users in the database向数据库中的所有用户广播相同通知的有效方法
【发布时间】:2019-09-18 16:09:58
【问题描述】:

大家好,我正在使用 HTML、CSS、纯 JS、AJAX、MYSQLI 和 PHP 构建一个社交网络。

我想知道你们个人从经验中知道的最佳方法是什么,用于向数据库中的所有用户广播相同的通知。

假设我有 100 万用户,这将如何运作?我正在尝试找到最有效的方法来做到这一点,而不会让我的数据库非常努力地工作。

这就是我的桌子的样子。

我不是要求任何人为我编写代码。我所要问的只是关于一种最有效的方法的建议,这样我就可以了解如何有效地编码这个结果。

【问题讨论】:

    标签: php mysql backend web-deployment web-development-server


    【解决方案1】:

    您可能正在寻找一些发布-订阅服务。你可以找到很多免费的开始。 看看https://cloud.google.com/pubsub/docs/https://aws.amazon.com/sns/ 这个想法是从服务器发布消息,并让所有用户订阅服务器正在向其广播消息的频道/主题。

    快速概览,可以参考https://faye.jcoglan.com/

    【讨论】:

    • 如果我不想依赖其他服务或库怎么办。我基本上想要完全控制我在做什么。我很好奇你们是否知道你们以前根据自己的经验尝试过的任何方法,而不涉及其他人的服务或图书馆。我想知道,如果我只是创建一个脚本来向所有用户发送相同的通知数据,但这似乎是向数据库中所有用户发送相同通知的大量副本。或者也许这就是大型社交网络网站的做法,如 facebook、twitter 等。
    • 快速实现需要对数据库进行一些重构。我会创建另一个表说 notifications 与列 user_id, message_id, received(boolean), timestamp ,其中 message_id 将是另一个表的外键说 messages 将存储要广播的消息。然后让客户端定期查询此表,并在用户成功检索消息后使用user_id and received 进行更新。然后,您可以使用where user_id not {user_id} 等过滤器继续检查服务器是否有新消息。
    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    相关资源
    最近更新 更多