Я делаю API через HTTP, который получает большие строки из PostgreSQL с пагинацией. В обычных случаях я обычно реализую пагинацию через наивные OFFET
/LIMIT
. Однако в данном случае есть некоторые особые требования:
- Строк много, но я полагаю, что пользователи не могут дойти до конца (представьте себе временную шкалу Twitter).
- Страницы должны быть доступны не произвольно, а последовательно.
- API будет возвращать URL, содержащий маркер курсора, который направляет на страницу непрерывных фрагментов.
- Курсорные маркеры должны существовать не постоянно, а в течение некоторого времени.
- Их упорядочивание часто колеблется (как в рейтинге Reddit), однако непрерывные курсоры должны сохранять последовательное упорядочивание.
Как я могу выполнить поставленную задачу? Я готов ради этого изменить всю схему базы данных!
задан minhee 13 October 2011 в 01:21
поделиться