Предположим, PHP/MYSQL, но мне не обязательно нужен реальный код, меня интересует только теория.
Хорошим вариантом использования будет страница фотогалереи Facebook. Вы можете перетащить фотографию на страницу, которая запускает событие Ajax, чтобы сохранить новый порядок сортировки. Я реализую нечто очень похожее.
Например, у меня есть таблица базы данных "фотографии" с примерно миллионом записей:
фотографии id: int, userid: int, albumid: int, sortorder: int, filename: varchar, название: varchar
Скажем, у меня есть альбом со 100 фотографиями. Я перетаскиваю фото в новое место, и событие Ajax срабатывает для сохранения на сервере.
Должен ли я передавать весь массив идентификаторов фотографий на сервер и обновлять каждую запись? Предположим, что проверка на ввод "WHERE userid
= loggedin_id
", поэтому злонамеренные пользователи могут испортить только порядок сортировки своих собственных фотографий
Должен ли я передавать идентификатор фотографии, свой предыдущий индекс порядка сортировки и новый индекс сортировки, извлекать все записи между этими двумя индексами, сортировать их, а затем обновлять их заказы?
Что произойдет, если в одной галерее будут тысячи фотографий и порядок сортировки будет изменен?