Как сделать свойство составной строки в Google App Engine? - PullRequest
0 голосов
/ 30 декабря 2011

Я создаю приложение, в котором в хранилище данных хранятся некоторые события, модель (упрощенная) выглядит следующим образом:

class Event(db.Model)
 plan = db.ReferenceProperty(Plan)
 points = db.FloatProperty()
 date = db.DateTimeProperty()
 cumelativePoints = db.FloatProperty()

где Plan - родительский экземпляр, который группирует события для пользователя. Мои проблемы заключаются в том, что (а) мне нужен порядок сортировки консистенции, поскольку сумма баллов событий до того, как это событие будет сохранено в событии (б) может произойти несколько событий одновременно (в) дата может измениться (т. Е. порядок изменений событий)

В Создание масштабируемых веб-приложений с помощью Google App Engine (слайд 36) предлагается свойство составной строки. Поэтому мой вопрос, как это можно реализовать? У меня есть два предложения:

  1. Создайте дополнительное строковое свойство в модели (назовите его index) и счетчик в плане, поэтому новое свойство будет (в псевдо) self.index = self.date.tostring+"|"+self.plan.counter? При запросе заказа по индексу и при обновлении даты обновления индекса.

  2. Создать в модели инкрементный счетчик (например, self.i), а при сортировке упорядочить сначала по счетчику (i), а затем по дате; всего .order("i").order("date").

Что лучше или есть другое решение, которое лучше?

Ответы высоко ценятся! Извините за небрежную запись, плохой английский и все дополнительные подробности проекта!

...