Хранить иерархические данные в хранилище данных Google App Engine?
-
06-07-2019 - |
Вопрос
Кто-нибудь может проиллюстрировать, как я могу хранить и легко запрашивать иерархические данные в хранилище данных механизма приложений Google? Р>
Решение
Лучший вариант зависит от ваших требований. Вот несколько решений (я предполагаю, что вы используете Python, поскольку вы не указали):
<Ол>Существуют и другие подходы, но эти три должны охватывать наиболее распространенные случаи.
Другие советы
Ну, вы должны постараться сделать ваши данные максимально линейными. Если вам нужно быстро выполнить запрос к древовидной структуре данных, вам придется либо сохранить их в базе данных (или, если хотите, в JSON-кодировке), если это возможно для ваших данных, либо вам придется генерировать древовидные индексы, которые могут использоваться для быстрого запроса части древовидной структуры. Однако я не уверен, как Google App Engine будет работать при обновлении этих индексов.
Когда дело доходит до Google App Engine, ваша главная задача должна заключаться в том, чтобы уменьшить количество запросов, которые вам нужно сделать, и чтобы ваши запросы возвращали как можно меньше строк. Операции стоят дорого, а хранилище - нет, поэтому избыточность не должна восприниматься как плохая вещь.
Вот несколько соображений по поводу предмета, который я нашел путем поиска в Google (хотя для MySQL, но вы можете получить общее представление о нем): Управление иерархическими данными в MySQL
А вот и обсуждение для Google App Engine: Моделирование иерархических данных
Одним из способов является использование родительского атрибута модели. Затем вы можете использовать функции query.ancestor () и model.parent ().
Полагаю, это зависит от того, какие операции вы хотите выполнить с этими данными, что определит, как лучше всего их представить.