首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase数据库结构,可实现更好的查询

Firebase数据库结构,可实现更好的查询
EN

Stack Overflow用户
提问于 2021-09-21 06:34:50
回答 1查看 72关注 0票数 0

我正在开发一款应用程序,帮助用户在附近的药店搜索他们想要的药物,然后显示有库存药物的药店列表和价格。

我来自SQL背景,一直在艰难地决定如何构建Firestore数据库以进行更好的查询,我认为通常你会浏览药店及其数据库的列表,但有没有一种方法可以让所有药品都有一个数据库,其中可能有一个字段,其中包含Firestore中有库存的药店的主键?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-21 06:48:27

有两种方法可以解决这个问题。第一种方法是在每个药房下创建一个子集合,以保存所有可用药物:

代码语言:javascript
复制
Firestore-root
  |
  --- pharmacies (collection)
        |
        --- $pharmacyId (document)
               |
               --- drugs (sub-collection)
                     |
                     --- $drugId
                           |
                           --- name: "Aspirin"
                           |
                           --- inStock: true

例如,为了让所有有阿司匹林库存的药店都有库存,就需要一台collection group query。在Android中,查询应如下所示:

代码语言:javascript
复制
db.collectionGroup("drugs").whereEqualTo("name", "Aspirin").whereEqualTo("inStock", "true");

第二个选择是创建一个顶级的药物集合:

代码语言:javascript
复制
Firestore-root
  |
  --- drugs (collection)
        |
        --- $drugId (document)
              |
              --- name: "Aspirin"
              |
              --- inStock: true
              |
              --- pharmacyId: $pharmacyId

并创建一个简单的查询,如下所示:

代码语言:javascript
复制
db.collection("drugs").whereEqualTo("name", "Aspirin").whereEqualTo("inStock", "true");

因此,您可以根据您的应用程序的使用情况选择工作或其中之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69264364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档