要使用Firebase在我的应用中管理邀请,我想保存邀请对象,但我应该如何构建它们以获得最佳效果?
选项1:将所有邀请保存在同一个参考中并使用查询和.indexOn规则
invitesRef.orderByChild('status').equalTo('pending')
所以它看起来像这样:
-invites
-userid
-invite objects
选项2:根据邀请状态保存在不同的参考中
-invites
-userid
-pending
-invite objects
-accepted
-invite objects
-declined
-invite objects
-expired
-invite objects
这样我每次邀请更改状态时都必须删除并创建。
我正在使用AngularFire和$ firebaseArray来处理所有待处理的邀请。
选项1似乎是最佳选择,但它如何使用大量对象执行?
答案 0 :(得分:0)
您已经做出了最重要的性能选择:您可以按用户存储邀请。干得好!
是否按状态存储邀请,取决于您期望的邀请数量以及您希望如何显示这些邀请。
如果您的应用程序将显示(例如)每个状态的选项卡,那么将每个状态的邀请存储在单独的节点中也是有意义的。在这种情况下,我不会担心移动节点的成本太高。
但是,如果您的应用在单个列表中显示所有状态的邀请,那么最好还将它们存储在数据库的一个列表中。
如果在后一种情况下你担心邀请的数量(这些必须是你正在处理的一些非常受欢迎的人),你可以考虑将它们存储在日期范围的存储桶中。
-invites
-userid
-201512
-invite objects for December
-201511
-invite objects for November