我在 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网络库,如果你想完全接受该库,它会强制执行它。