如果我希望有可以回复的帖子,这是一个更好的结构?
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?
答案 0 :(得分:1)
我会不会。 2。 原因是没有。 1您将不得不进行查询以获取基于ID的回复数据。 使用firebase,写入更多内容并阅读更少内容总是更好。
答案 1 :(得分:0)
这取决于您以后是否会在某些时候引用回复。如果您的回复仅与您的帖子相关且不再有,那么选项2是最佳的,因为您无需获取回复。但是,如果您希望有更复杂的功能来查询与某些用户相关的回复,那么最好将每个回复的引用存储为选项1.这是根据我的应用程序的经验不断增长和在某些时候,获取节点太慢,因为它有太多的孩子,孙子等等。我不得不压扁数据库以使其获取更快。我建议仔细考虑你的应用程序的架构。