Я создаю приложение, в котором в хранилище данных хранятся некоторые события, модель (упрощенная) выглядит следующим образом:
class Event(db.Model)
plan = db.ReferenceProperty(Plan)
points = db.FloatProperty()
date = db.DateTimeProperty()
cumelativePoints = db.FloatProperty()
где Plan - родительский экземпляр, который группирует события для пользователя. Мои проблемы заключаются в том, что (а) мне нужен порядок сортировки консистенции, поскольку сумма баллов событий до того, как это событие будет сохранено в событии (б) может произойти несколько событий одновременно (в) дата может измениться (т. Е. порядок изменений событий)
В Создание масштабируемых веб-приложений с помощью Google App Engine (слайд 36) предлагается свойство составной строки. Поэтому мой вопрос, как это можно реализовать? У меня есть два предложения:
Создайте дополнительное строковое свойство в модели (назовите его index) и счетчик в плане, поэтому новое свойство будет (в псевдо) self.index = self.date.tostring+"|"+self.plan.counter
? При запросе заказа по индексу и при обновлении даты обновления индекса.
Создать в модели инкрементный счетчик (например, self.i
), а при сортировке упорядочить сначала по счетчику (i
), а затем по дате; всего .order("i").order("date")
.
Что лучше или есть другое решение, которое лучше?
Ответы высоко ценятся! Извините за небрежную запись, плохой английский и все дополнительные подробности проекта!