Нужен шаблон для поиска таблиц в Google App Engine - PullRequest
2 голосов
/ 16 марта 2011

Я использую Python-версию Google App Engine и хранилища данных.Каков хороший способ загрузки таблицы, которая будет содержать справочные данные?

Под поиском данных я подразумеваю, что после начальной загрузки не требуется вставлять, удалять или обновлять строки

Снос всех строк и перезагрузка таблицы недопустимы, если она разрушает ссылочную целостность с другими ссылками на нее.

Вот пример пары видов, которые я использую, и которые я хочу загрузить справочные данные в

class Badge(db.Model):
    name = db.StringProperty()
    level = db.IntegerProperty()

class Achievement(db.Model):
    name = db.StringProperty()
    level = db.IntegerProperty()
    badge = db.ReferenceProperty(reference_class=Badge)

Вот пример вида, который не удерживает данные поиска, но ссылается на них

class CamperAchievement(db.Model):
    camper = db.ReferenceProperty(reference_class=Camper)
    achievement = db.ReferenceProperty(reference_class=Achievement)
    session = db.ReferenceProperty(reference_class=Session)
    passed = db.BooleanProperty(default=True)

Я ищу, чтобы выяснить две вещи:
Какой должен быть кодзагрузить данные выглядят как?
Что должно вызвать выполнение кода загрузки?

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Если он действительно создан один раз и никогда не изменяется в течение срока службы развертывания, и он относительно небольшой (несколько мегабайт или меньше), сохраните его вместе с приложением в виде файлов данных. Сначала приложение загрузит данные в память и сохранит их там.

0 голосов
/ 16 марта 2011

Я думаю вы имеете в виду какой-то кэш с обратной записью, но это не совсем ясно из вашего вопроса.

Это общая схема чтения медленных медленных источников данных (например, базы данных / диска) и их кэширования в быстром источнике (например, memcache / memory) для последующего быстрого поиска. Тогда вы несете ответственность за очистку всех кэшированных элементов при изменении ситуации.

См. Первый пример на Использование memcache

...