如何在Firestore中构造数据以搜索元素的交集?例如:
使用该应用程序的人选择他们拥有套件1和2,它应该返回套件3。如果他们选择套件1和3,则表明购买套件4意味着他们拥有套件2将很有用。 >
与总数据集相比,此示例很小。有成千上万的套件和数百万个零件。
我认为构造这些数据的方法是在它们之间有很多重叠。应该有2个顶级收藏,一个用于套件,一个用于零件。套件集合将包含每个套件的文档,其中包括零件图,其中每个零件都有一个ID和一个数量。零件集合将包含零件文件。每个零件都有一个与套件文档映射中的ID匹配的ID,并包含一组套件ID。
应用程序将读取套件,该套件可能返回数千个零件,然后将读取每个零件并获取所有套件编号,然后将读取所有这些套件并查看其中哪些零件具有所有零件。这可能会起作用,但是随着数据库的增长,每次搜索将读取数千个文档。有没有更好的方法来存储数据以减少文档数量但仍可扩展?