Пример задачи:
Объекты:
- Пользователь содержит имя и список друзей (ссылки пользователей)
- Сообщение в блоге содержит заголовок, содержание, дату и Writer (Пользователь)
Требования:
Мне нужна страница, отображающая заголовок и ссылку на блог последних 10 сообщений пользователем. Мне также хотелось бы сохранить пейджинг обратно через старые записи.
Решение SQL:
Итак, в sql-стране это будет что-то вроде:
select * from blog_post where user_id in (select friend_id from user_friend where user_id = :userId) order by date
Решения GAE, о которых я могу думать, следующие:
- Загрузите пользователя, просмотрите список друзей и загрузите их последние сообщения в блоге. Наконец, объедините все сообщения в блоге, чтобы найти последние 10 записей в блоге.
- В блоге есть список всех пользователей, у которых есть автор в качестве друга. Это будет означать простое чтение, но приведет к перегрузке квоты при добавлении друга, у которого много сообщений в блоге.
Я не считаю, что одно из этих решений будет масштабироваться.
Я уверен, что другие ударили по этой проблеме, но я искал, смотрел видео google io, читал другой код... Что мне не хватает?