在Firebase中格式化数据

时间:2019-04-05 14:23:38

标签: json firebase google-cloud-firestore

我不确定构造json的最佳方法。本质上,我想做的是在我的收藏中创建多个文档,比如说衣服。一个文档是衬衫,然后是牛仔裤文档,但是每个文档都有不同的品牌,因此在衬衫文档中,我创建了一个Brands数组,然后针对每种尺寸和剩余数量创建了其他几个数组。为简单起见,我有4个数组,一个带有品牌名称,另一个数组的大小很小,仅包含数量,另一个数组的大小中等,最后一个数组很大。我是否可以在Firebase中仅创建一个对象,并使用品牌名称作为字符串,然后少量创建数字,中型和大型?

我正在考虑做的是在衬衫上为品牌创建一个集合,然后创建一个具有三个属性(小,中,大,数量大)的文档。

2 个答案:

答案 0 :(得分:2)

  

基本上我想做的是在我的收藏夹中创建多个文档

这是您应该做的。

  

一个文件是衬衫,然后另一个是牛仔裤

不,您不应该为每种衣服创建文档,而应该创建一个集合,在其中将布料对象存储为文档。

  

我有4个数组,一个带有品牌名称,另一个数组的大小很小,只包含数量,另一个数组的大小中等,最后一个数组很大。

不,这不是应该的方法。

  

我是否可以在Firebase中创建一个对象,并使用品牌名称作为字符串,然后少量创建数字,中型和大型?

是的。请在下面查看我的结构:

Firestore-root
   |
   --- shirts (collection)
   |    |
   |    --- shirtId (document)
   |          |
   |          --- brandName: "Nike"
   |          |
   |          --- sizes:
   |               |
   |               ---M: 10
   |               |
   |               ---L: 15
   |               |
   |               ---XL: 12
   |
   --- jeans (collection)
        |
        --- jeansId (document)
              |
              --- brandName: "Levi's"
              |
              --- sizes:
                   |
                   ---M: 10
                   |
                   ---L: 15
                   |
                   ---XL: 12
  

我正在考虑做的是在衬衫上为品牌创建一个集合,然后创建一个具有三个属性(小,中,大,数量大)的文档。那真的是最好的解决方案吗?

绝对不是!

答案 1 :(得分:1)

好的,因此将您的数据从常规到特殊进行组织,因此我们拥有:

polyfills.ts

因此,您可以有多个根集合,并且可以根据需要进行组织,实际上,可以有重复的树来支持不同的查询。 sql dbs上使用的规范化数据的概念实际上并不适用于nosql数据存储,因为它们是分层的,与重复遍历一棵很深的树相比,它更容易和更快地具有重复项。

我将按类型放置收藏,然后按品牌放置文档,然后按特定的模型放置模型大小库存:

-> Type of clothing
-> Brand
-> Model
-> Inventory

但是,实际上,您必须查看查询并尝试以支持最常见查询的最直接编码的方式对数据建模