Я хотел бы знать, как лучше всего создать кнопки «следующий/предыдущий» для записи в базе данных. Допустим, у нас есть таблица с изображениями, и каждое изображение имеет идентификатор и путь. Если текущее изображение имеет идентификатор, равный «9», как я могу получить следующий и предыдущий идентификаторы?
Я уже нашел решение для этого прямо здесь, https://stackoverflow.com/a/8874382, но это, кажется, последний выбор . Если в нашей базе данных будет более 10000 записей (изображений), это перегрузит сервер. Прежде всего, он выбирает все записи, а затем пытается скопировать все результаты в массив. После этого в массиве ищется текущий ID. Это очень медленно.
Я думал об ограничении, установленном для запроса, но как я могу получить следующее и предыдущее изображения после этого?
Другим (я думаю, лучшим) решением было бы получить идентификатор текущего изображения и уменьшить/увеличить его до тех пор, пока не будет найдено другое изображение с новым идентификатором. Я думаю, что это быстрее, чем функция, представленная в ссылке.
Так же по этой же ссылке есть еще идея, установить prev_id и next_id в модели текущей картинки. Но здесь у нас та же проблема, как нам их найти? И даже если мы их найдем, правильно ли хранить данные о предыдущей/следующей картинке в текущей картинке? Это не кажется правильным, но я уверен, что это более удобно, когда вам нужно получить доступ к этим данным.
Спасибо!