Я создаю приложение Trivia, и мне нужна помощь в разработке отношений модели. Этот вопрос может быть довольно сложным, но я постараюсь быть кратким.
Вопросы викторины все будут частью определенной категории. Категории могут быть категорией в другой категории. Если вопрос пустяков создан / удален, я должен удостовериться, что я также обновляю счетчик. Таким образом, я смогу увидеть, сколько вопросов в каждой категории, и отобразить их пользователям. Если у категории есть дочерние категории, мне понадобится способ отображения совокупного счетчика всех подкатегорий. Точные подсчеты довольно важны, но не критически важны. Я не против использования заколоченных счетчиков. Мой вопрос: как мне спроектировать это так, чтобы оно приняло денормализацию GAE и поддерживало оптимизацию?
Я думал о том, чтобы иметь класс Category с ListProperty в каждом, который будет представлять дерево предков. Он будет содержать ключ к каждому родительскому объекту в дереве по порядку. Но должен ли я также указывать родителя при создании объектов или это не нужно в этом случае? Я думаю, что мне, возможно, придется запускать обновления счетчика в транзакции, поэтому я рассматриваю отношения между родителями и детьми.
Или, возможно, есть более оптимизированный способ построения моих отношений, который все еще позволит мне вести достаточно точные счетчики всех вопросов в каждой категории. Заранее спасибо за любую помощь.