Группы объекта в Google App Engine Datastore

Это может быть достаточно, чтобы увидеть, существует ли URL-адрес файла.

import urllib
if urllib.urlopen('http://www.fakedomain.com/fakeImage.jpg').code == 200:
  print 'File exists'
7
задан Peter Mortensen 30 October 2009 в 12:28
поделиться

2 ответа

Вы в основном правы. Вам нужно сгруппировать их, если вам нужна транзакционная способность. Однако вы можете сгруппировать несколько объектов вместе, не создавая фактического корневого объекта в смысле объекта в хранилище данных. Вместо этого вы создаете своего рода виртуальную корневую сущность. Одним из важных вариантов использования этой функции является возможность создать дочерний объект до того, как вы создадите его родительским.

Вы можете создать объект с путь предков без предварительного создания родительский объект. Для этого вы создать ключ для предка, используя вид и ключевое имя, затем используйте его как родитель нового объекта. Все сущности с одним и тем же корневым предком принадлежат к одна и та же группа сущностей, независимо от того, корень пути представляет собой реальная сущность.

Эта цитата из того же документа, который вы связали с .

3
ответ дан 6 December 2019 в 14:06
поделиться

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

Я бы не стал просто создавать корневую пользовательскую сущность и бросать все в ее группу сущностей. Подумайте о том, для чего вам нужны транзакции. Если бы у вас не было свойств вашей пользовательской сущности, с чем бы вы использовали ее в транзакциях?

Я не знаю о ваших данных, но давайте предположим, что это система блогов, и у вас есть пользователи, сообщения и комментарии. Модель Post содержит число_of_комментариев, так что вам не нужно их считать. Возможно, вы захотите, чтобы при создании комментария транзакции гарантировали, что свойство number_of_comments может быть безопасно обновлено.

В этом случае, было бы излишним иметь все пользовательские сообщения и комментарии в одной группе сущностей. Вместо этого вы можете размещать комментарии в той же группе сущностей, к которой они принадлежат. Нет необходимости ставить сообщения в одну группу с пользователем, а на самом деле это плохая идея, так как комментарии, размещенные в любом из сообщений пользователей, будут претендовать на создание одной группы сущностей.

Сегодня в своем блоге я написал короткую статью о группах сущностей . Возможно, она окажется вам полезной.

12
ответ дан 6 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: