首页 > 解决方案 > 如何为社交应用实现可扩展的通知系统?

问题描述

我正在为另一个社交类型应用程序开发通知系统。它有帖子、评论和其他几个功能等,我目前的实现是这样的,

我有每个对象的不同通知表(总共 6 个表)(post_notif、comment_notif 等)每个表存储 notif_id、to_user、from_user、类型(喜欢、收藏等)、object_id、...、created_at 等。

每个表都有超过 4 个索引,因为查询中将连接多个外键(每个查询最少 4 个 JOINS)。

使用 union all 查询所有 6 个表,例如

SELECT col_a, col_b..
    UNION ALL
SELECT col_a, col_b..
    UNION ALL..
...

我需要通知来更新可能会更新的对象的任何更改,以便它反映在用户看到的通知中(例如,'Johnny 评论:“太棒了!”,'Johnny 评论:“太棒了。”)是在通知检索中为具有外键和联合所有对象的单独表的推理。

我正在使用 MySql,ID 是从票务服务器生成的,如果有帮助,我将使用 NodeJs 作为 api 前端。

我的问题是

在我看来,随着应用程序的扩展,这将是非常低效的,我正在寻找是否有更好的方法或更有效的方法来做到这一点。

标签: mysqlnotificationssocial-networking

解决方案


推荐阅读