Firestore如何为交叉点构造数据

时间:2019-01-11 02:11:21

标签: firebase google-cloud-firestore

如何在Firestore中构造数据以搜索元素的交集?例如:

  • 套件1包含:a,b,c
  • 套件2包含:d,e,f
  • 套件3包含:d,e,h
  • 套件4包含:r,f,x

使用该应用程序的人选择他们拥有套件1和2,它应该返回套件3。如果他们选择套件1和3,则表明购买套件4意味着他们拥有套件2将很有用。 >

与总数据集相比,此示例很小。有成千上万的套件和数百万个零件。

我认为构造这些数据的方法是在它们之间有很多重叠。应该有2个顶级收藏,一个用于套件,一个用于零件。套件集合将包含每个套件的文档,其中包括零件图,其中每个零件都有一个ID和一个数量。零件集合将包含零件文件。每个零件都有一个与套件文档映射中的ID匹配的ID,并包含一组套件ID。

应用程序将读取套件,该套件可能返回数千个零件,然后将读取每个零件并获取所有套件编号,然后将读取所有这些套件并查看其中哪些零件具有所有零件。这可能会起作用,但是随着数据库的增长,每次搜索将读取数千个文档。有没有更好的方法来存储数据以减少文档数量但仍可扩展?

0 个答案:

没有答案