我正在將應用程序從db轉換爲ndb,並且正在努力提高查詢的效率。隨着數據量的增加,應用程序變得有點慢,導致我們意識到查詢效率非常低。查詢沒有父母的實體
背景:
我們精簡的數據模型與此類似(隨意批評):
class ServiceRequest(ndb.Model):
technician = ndb.UserProperty()
application = ndb.KeyProperty() # ServiceRequestApplication kind
class ServiceRequestApplication(ndb.Model):
applicant = ndb.UserProperty()
管理員可以 「批准」 一ServiceRequestApplication的ServiceRequest。 ServiceRequestApplications通過父ServiceRequest實例化。如果ServiceRequestApplication獲得批准,則應用程序的密鑰將存儲在請求的應用程序屬性中。
最棘手的部分:
可以有1個實際預約服務(1元技術員)多ServiceRequest實體。我們有一個ServiceRequest,如果需要多個技術人員,我們創建額外的ServiceRequests,並以ServiceRequest爲主。我們最初以這種方式解決了這個問題,因爲祖先查詢會非常容易,其中還包括一些與查詢/表示數據的方式有關的其他原因。
任何人都可以想到的方式來查詢ServiceRequest實體不有子女ServiceRequests?
謝謝!