Как лучше всего «перемешать» таблицу записей базы данных?

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

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

Проблема в том, что если я верну только случайные результаты, может произойти быть дубликаты. Каждая страница содержит 6 результатов, поэтому, чтобы предотвратить это, мне нужно было бы сделать что-то вроде WHERE id NOT IN (1,2,3,4 ...) , где я бы поместил все ранее загруженные ID.

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

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

Я использую Rails и MySQL, если это имеет какое-то отношение.

6
задан Jakub Arnold 5 January 2011 в 23:37
поделиться