Json 在Firebase中复制数据的正确方法是什么?
我最近一直在重构我的代码,试图去规范化我的Firebase数据库。我知道有些重复和冗余是必要的,但我发现很难确定正确的重复级别 例如,在我的项目中,我有Json 在Firebase中复制数据的正确方法是什么?,json,firebase,firebase-realtime-database,database-design,relational-database,Json,Firebase,Firebase Realtime Database,Database Design,Relational Database,我最近一直在重构我的代码,试图去规范化我的Firebase数据库。我知道有些重复和冗余是必要的,但我发现很难确定正确的重复级别 例如,在我的项目中,我有装备和项目,其中装备可能有许多项目 目前,我有以下设置: outfits outfitId outfitName outfitDescription items itemId itemName itemDescription itemBrand itemsByOutfit outfitId
装备
和项目
,其中装备
可能有许多项目
目前,我有以下设置:
outfits
outfitId
outfitName
outfitDescription
items
itemId
itemName
itemDescription
itemBrand
itemsByOutfit
outfitId
itemId
itemName
itemDescription
itemBrand
itemId
itemName
itemDescription
itemBrand
在UI中,我经常需要获取装备
对象的列表,以及标记的项目itemsbyotfit
在这个意义上是一个方便的索引,因为我可以一次获得名称、描述和品牌
但是,当涉及到重命名项目或更改描述时,我也必须扇出更新
将itemsByOutfit
仅限于itemId
值是否更好?像这样:
itemsByOutfit
itemId: true
itemId: true
这似乎更容易维护,但在获取时需要做更多的工作。我可能需要使用所有itemId
值进行第二次查询,以获取名称、品牌等
我还有另一个索引-itemsByBrand
,它遵循类似的复制模式。所有数据均按品牌进行复制和组织-例如:
itemsByBrand
Nike
itemId
itemName
itemDescription
itemBrand
如果有任何想法或最佳实践可以帮助我构建更具可扩展性的解决方案,我将不胜感激。谢谢 我的观点是,您仅在items节点中保存一次项目数据(名称、描述、品牌)。所有其他itemby'x'列表都是itemId:bool列表,您读取这些列表以获取必要的项,然后遍历返回的列表以检索项数据。性能开销不应该很大,所涉及的数据量也很小