我一直在尝试找出如何在Cloud Firestore中为复杂的Feed最佳建模数据而又不返回不必要的文档。
这是挑战-
为特定主题创建内容,例如:建筑,桥梁,水坝,道路等。主题选项可以随时扩展为包含所需的任意数量。这意味着它是一个不断发展的列表。
创建内容时,还会将其标记到特定行业。例如,我可能想在建筑学中创建一个帖子,并且希望在建筑,钢铁和混凝土行业中看到它。
这是需要技巧的地方。如果我对钢铁和建筑行业感兴趣,那么我希望提供一个供稿,其中包含来自这两个行业的帖子,主题是桥梁和水坝。由于它是提要,因此结果需要按时间顺序排列。我怎么可能创建这个提要?
我考虑了以下选项:
查询所选的每个主题,其中包括Steel和Construction的标签,然后对结果进行汇总和排序。我遇到的问题是它可能返回过多的帖子,这意味着我不必要地阅读文档。如果我在特定时间范围内选择5个主题,那就是5个查询,这没关系。但是,每个结果都可能有任何可能的数量,这是有问题的。我可以添加一个限制,但是我冒着风险,即使它们在时间范围之内,也会被主题遗漏。
在Cloud SQL中创建帖子“索引” 表并对其执行查询以获取帖子ID,然后根据需要检索Firestore文档。然后的问题是,为什么不只使用Cloud MySql。...这是扩展,成本和维护的问题。 Firestore的整个重点不必太担心DBA,负载和规模。
我还无法提出任何其他想法,希望有人能够应对这样的挑战,并能对此事有所启发。也许firestore完全是错误的解决方案,我正在尝试将方钉插入圆孔中,但似乎可以找到可行的解决方案。
答案 0 :(得分:1)
理想的结构是为帖子设置单独的节点,然后为每个帖子指定一个参考父类别,例如“钢和建筑”。让它们也带有时间戳。如果您认为该数据库对于Firebase的查询而言过于庞大。您可以将Firebase数据库连接到elasticsearch并从那里进行搜索。 希望对您有所帮助。