什么类型的Firebase数据结构更好?

时间:2016-01-13 15:27:29

标签: ember.js firebase emberfire

我在Firebase中看到混合教程,建议构建如下数据:

posts: {
  post_1: {
    title: 'Some Title',

    comments: {
      comment_1: true,
      comment_2: true,
      ...
      comment_x: true
    }
  }
}

comments: {
  comment_1: {
    name: 'Foo'
  },

  comment_2: {
    name: 'Bar'
  },

  ...

  comment_x: {
    name: 'X'
  }
}

posts: {
  post_1: {
    title: 'Some Title',
  }
}

comments: {
  post_1: {
    comment_1: {
      name: 'Foo'
    },

    comment_2: {
      name: 'Bar'
    },

    ...

    comment_x: {
      name: 'X'
    }
  }
}

我认为后者在查询,批量写入和安全灵活性方面的速度更好。特别是当您拥有第一个数据结构并且通过博客查询时,只是为了找到它的标题。如果你有一百万条评论就会加载大量的数据,即使这个值是真的(除非我在这里遗漏了一些东西)。

我的问题是,对于像社交网络那样的大量数据,第二个数据结构真的比第一个更好吗?我甚至不相信第一个比第二个更好。

我被撕裂了,因为一些 Firebase教程使用了第一个数据结构,而我正在使用Firebase中的Emberfire网络库,如果您想要完全拥抱该库,则会强制执行它。

1 个答案:

答案 0 :(得分:1)

第二个例子是浅(呃),这对Firebase很有用。数据是分开的,这也是一件好事。唯一的缺点(实际上并不是一个缺点)是,如果你只想为帖子和相关评论打一次数据库,而不是第二个例子中的两倍;一次为帖子,再次为评论。显然#1在那里获胜,但除了#2之外的其他方式。