【问题标题】:Laravel Interactive NotificationsLaravel 交互式通知
【发布时间】:2016-03-02 20:08:35
【问题描述】:

我正在尝试找出一个交互式通知系统。我的应用程序是用 Laravel 构建的,我目前使用 Pusher 向客户端广播某些事件。我将在通知系统中使用相同的过程,但是,当为用户弹出通知时,我希望在其上保留一些样式,除非用户单击或悬停在通知上。

我知道我可以使用 Javascript 来做到这一点,但如果用户没有对该通知采取行动、退出然后重新登录怎么办。我希望该样式保持不变,直到用户与该通知进行交互。

最好创建一个通知控制器,每当用户与该通知交互时,数据库记录都会为该特定用户更新?这似乎很多,因为通知将是公开的并广播给几乎所有用户......并且每个用户都有一个数据库记录......这可能会创建大量记录。

感谢任何帮助。谢谢!

【问题讨论】:

    标签: laravel pusher


    【解决方案1】:

    不确定这是否是最好的方法,但我会设置:

    1. 通知模型
    2. 与用户的关系。 (用户 - 通知 - 多对多)
    3. 保持通知和用户关系的中间表。

    通知模型可以有以下数据库字段来保存您的通知数据。

    • 身份证
    • 标题
    • 留言
    • 状态

    你的中间表可能有(notification_user 表)

    • notification_id
    • user_id
    • read_on(时间戳)
    • is_archived(布尔型)

    您可以在用户阅读通知时更新 read_on 时间戳,这样您就不会一直显示它们。您还可以为他们提供存档等选项,这些选项应该在您的数据透视表中。

    希望这会有所帮助。

    【讨论】:

    • 这与我考虑设置它的方式相似。如果向 1,000 名用户发送通知从而创建 1,000 条数据库记录,您是否预见到会出现问题?看起来这张桌子会很大。
    • 如果您使用的是 MYSQL 并且您的 notification_id 是无符号整数,则最大值为 4,294,967,295。如果是 unsigned bigint,最大值为 18,446,744,073,709,551,615。如果您接近这些数字,我猜您可能会开始担心:)
    • 没问题。很高兴它有帮助。
    • 一个后续问题。由于我使用 Pusher 进行实时功能,最好使用公共渠道还是私人渠道?该频道最有可能是特定于用户的,但它应该是私有的吗?谢谢。
    • 我对 Pusher 不是很熟悉,但它似乎应该是私有的。 pusher.com/docs/client_api_guide/client_private_channels 不过我还是会仔细检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2017-07-21
    相关资源
    最近更新 更多