Моделирование дружеских отношений в GAE - PullRequest
1 голос
/ 17 ноября 2010

Я работаю с GAE и у меня есть таблица пользователей.Теперь я хочу смоделировать дружеские отношения между пользователями.Я имею в виду наличие 3 свойств user1, user2 и request_status, но проблема в том, чтобы найти друзей конкретного пользователя.Поскольку GAE не разрешает фильтрацию OR, я должен объединить два запроса.Понятно, что это очень неэффективно.Это только одна проблема с моим подходом.Если бы кто-то мог предложить решение, которое позволило бы мне отслеживать все запросы друзей, а также дружбу, то это было бы очень полезно.

1 Ответ

1 голос
/ 17 ноября 2010

Денормализация позволит вам более эффективно находить друзей пользователя с помощью одного запроса. Попробуйте сохранить другое свойство users (a db.ListProperty) в вашей модели, которое содержит и user1 и user2. Затем вы можете просто выполнить такой запрос, чтобы найти друзей пользователя:

friendships = Friendship.all().filter('users =', user).fetch(...)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...