我正在開發一個應用程式,幫助用戶在附近的藥店搜索他們所需的藥物,然后顯示有該藥物庫存的藥店名單和價格。
我有SQL背景,一直很難決定如何構建Firestore資料庫以獲得更好的查詢,我想通常你會通過藥店和他們的資料庫串列,但是否有辦法為所有藥物建立一個單一的資料庫,也許有一個欄位擁有Firestore中庫存的藥店的主鍵?
uj5u.com熱心網友回復:
你有兩種方法可以解決這個問題。第一種是在每個藥店下創建一個子庫,以容納所有可用的藥品:
Firestore-root
|
------藥店(集合
|
---$pharmacyId (document)
|
--- 藥品 (子集合)
|
--- $drugId
|
--- 名稱: "阿司匹林"
|
--- inStock: true
為了獲得所有有庫存的藥店,例如阿司匹林,需要一個集合組查詢。在Android中,該查詢應該是這樣的:
db.collectionGroup("drugs").whereEqualTo("name", "Aspirin").whereEqualTo("inStock", "true")。
你的第二個選擇是創建一個單一的頂層藥物集合:
你的第二個選擇是創建一個單一的頂層藥物集合。
Firestore-root
|
---藥品(集合
|
--- $drugId (document)
|
--- 名稱: "阿司匹林"
|
--- inStock: true
|
--- pharmacyId: $pharmacyId
然后創建一個簡單的查詢,看起來像這樣:
db.collection("drugs").whereEqualTo("name", "Aspirin").whereEqualTo("inStock", "true")。
因此,你可以根據你的應用程式的使用情況,選擇作業或一個或另一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324200.html
標籤:
