BigTable запрос с оператором IN, чтобы получить все ключи группы пользователей - PullRequest
0 голосов
/ 20 января 2011

У меня небольшая проблема с разрешениями в моем будущем социальном приложении.

Платформа будет не иметь отношения к дБ (Google BigTable).

В моем приложении у каждого пользователя есть группы (например: друзья, соавторы, семья ...). В группе есть несколько друзей (как в Фейсбуке). И может публиковать некоторый контент (новости, короткие тексты, ...) только для этой группы. Если у меня есть пользователь в моей группе, это мой друг. Как в Facebook, но больше групп.

Моя идея заключается в том, что каждый пользователь может видеть (на своей «ленте») весь последний контент всех друзей на одной странице (например, в качестве главных новостей Facebook). Но у меня проблемы с созданием простого запроса.

Например:

SELECT * FROM News WHERE group_key IN [list_of_groups_where_i_am]

Это хорошо работает, но есть подзапросы, и ограничение списка составляет 30 пунктов. Другой способ - сильное кеширование контента.

У кого-нибудь есть идеи? Или любой учебный материал, например ...

1 Ответ

1 голос
/ 21 января 2011

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

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

...