Я работаю над преобразованием приложения из 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, ключ приложения сохраняется в свойстве приложения запроса.
Хитрости:
Там может быть несколько лиц ServiceRequest для 1 фактического назначения службы (1 за техник). У нас есть один ServiceRequest, и если требуется несколько технологий, мы создаем дополнительные ServiceRequests с основным ServiceRequest в качестве родителя. Мы первоначально подошли к проблеме таким образом, потому что запросы предков были бы довольно легкими, включая некоторые другие причины в отношении того, как эти данные будут запрашиваться/представлены.
Может ли кто-нибудь подумать о способе запроса для объектов ServiceRequest, которые не have have children ServiceRequests?
Спасибо!