用firebase数据压扁多少钱?

时间:2016-07-30 05:55:48

标签: ios firebase firebase-realtime-database

如果我希望有可以回复的帖子,这是一个更好的结构?

1)

posts
  908239409234
      postText: "Whats up peeps?"
      replies:
            09283049830294: true
            a9s0dif09iasd9: true

replies
   09283049830294
      text: "Nm breh"
      imageURL: nil
    a9s0dif09iasd9
      text: "Nm breh"
      imageURL: nil

或2)

posts
   908239409234
      postText: "Whats up peeps?"
      replies:
         09283049830294
            text: "Nm breh"
            imageURL: nil

        a9s0dif09iasd9
             text: "Nm breh"
              imageURL: nil

我看到很多数据库的例子看起来像#1,你在那里存储对其他地方存储的帖子的引用以支持展平,但是如果可以做到的话,我认为不仅仅使用选项2还有什么好处? / p>

如果用户正在加入帖子,他们会有帖子uid,他们只需在“回复”下添加autoID即可。

TL; DR,最好采用更平坦的方法或看似更高效的方法,并且需要搜索更少的信息?有没有理由不去选项2?

2 个答案:

答案 0 :(得分:1)

我会不会。 2。 原因是没有。 1您将不得不进行查询以获取基于ID的回复数据。 使用firebase,写入更多内容并阅读更少内容总是更好。

答案 1 :(得分:0)

这取决于您以后是否会在某些时候引用回复。如果您的回复仅与您的帖子相关且不再有,那么选项2是最佳的,因为您无需获取回复。但是,如果您希望有更复杂的功能来查询与某些用户相关的回复,那么最好将每个回复的引用存储为选项1.这是根据我的应用程序的经验不断增长和在某些时候,获取节点太慢,因为它有太多的孩子,孙子等等。我不得不压扁数据库以使其获取更快。我建议仔细考虑你的应用程序的架构。