【问题标题】:Firebase fan-out structure for news feed新闻提要的 Firebase 扇出结构
【发布时间】:2017-12-19 09:39:26
【问题描述】:

我有一个包含postsusers 和其他节点的数据库,例如经典社交媒体应用程序。

我将继续在我的应用程序中实施最佳实践。现在我想重写我的新闻条(我关注的用户帖子(如 Instagram 中的主页标签))。

我已经阅读了一些关于fan-out 策略的信息,现在我对如何正确执行它感到困惑。

所以,我有两个机会:

  1. 喜欢here:每次用户添加新的post,这个带有完整信息的post将被复制到users-timeline(users news strip)/UID/postId: FULL INFO到这个user的所有followers。并且每次编辑都会编辑此post 的每次提及。

  2. 每次用户添加新的post,这个postID将被复制到user-timeline(users news strip)/UID/postId: true到这个user的所有followers。而且每次编辑都只会编辑源帖子。

Firebase 哪种逻辑更好?

【问题讨论】:

    标签: firebase firebase-realtime-database nosql


    【解决方案1】:

    我建议您使用 David's East 解决方案。正如我在他的帖子中看到的,他使用 Firebase 非规范化和数据扁平化,这是 Firebase 中的最佳常见做法。

    我还建议您阅读 NoSQL Data Modeling TechniquesStructuring your Firebase Data correctly for a Complex App 以获得更好的理解。

    如果你有 SQL 背景,我建议你也看看 David 的 East 教程,The Firebase Database For SQL Developers

    【讨论】:

    • 那么,你的选择是1?
    • 绝对是第一。
    • 顺便说一句。如果一位用户在我的个人资料上按了关注。我应该使用服务器端扇出将我的帖子添加到他的时间线吗?
    • 是的,你完全可以这样做。
    • @Stefano 当然,这是可能的,但没有看到代码和您的数据库架构,我帮不上什么忙。因此,如果您在对元素进行排序时遇到困难,请发布一个新问题,以便我或其他 Firebase 开发人员可以查看。
    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多