Помогите сообразить.
Дано
База данных с записями, которые добавляются и удаляются.
Записи группируются по категориям.
Грубо говоря одна категория записей это стопка бумажных листов.
Записей десятки тысяч в каждой категории.
Требуется: взять самый верхний лист из стопки, вернуть его вызывающему скрипту, а сам лист положить в самый низ стопки. и так по кругу.
Не могу сообразить как это сделать логически, ну и как следствие технически.
Была идея прописывать каждой позиции порядковые номера, и после выбора элемента обновлять все номера в базе. Но это как то накладно.
Была идея помечать последний выбранный элемент флагом (аналог курсора). Но не понятно что делать если помеченный элемент будет удален из базы.
Чувствую что есть простое решение, но не могу сообразить.