Всем привет!
Помогите, пожалуйста, решить ситуацию: есть некая таблица, назовем ее
timeline, куда пишутся все события, которые происходят с пользователем. Например, кто-то его добавил в друзья, у его друзей что-то произошло и все такого рода. В таблице есть первичный ключ, автоинкремент — все классически. Есть поле
date_created — дата создания записи.
Теперь о сложностях. Хочу сделать подгрузку сообщений при скроллинге. Например, вывел 10 сообщений, долистал до низа — подгружаются еще 10. Все логично и просто до тех пор, пока не происходят события, попадающие на одну и ту же дату с точностью до секунды. Т.е. выборку
select * from timeline where date_created<дата_последнего_сообщения_в_ленте LIMIT 10
уже нормально не сделать — пропадет часть сообщений. Сортировку по первичному ключу тоже не получится сделать — в будущем в таблицу timeline могут писаться события за прошлые периоды и ID, выступающий в роли order_id, потеряет свою актуальность.
По идее это можно было бы решить сквозным
order_id для каждого пользователя, но не очень хочется заводить еще одно поле и при некоторых действиях пересчитывать все order_id.
Можно решить вопрос следующим образом —
dba.stackexchange.com/questions/23981/mysql-select...
Но тут не нравятся двойная сортировка и переменные.
Может быть у кого-то был опыт подобного и можете предложить другое решение?