Вот эта вещь:
У меня есть веб-приложение, созданное с помощью jQuery / php / mysql. Это своего рода диспетчер задач. У меня есть категории и задачи, относящиеся к категориям. Задачи имеют суррогатный первичный ключ (идентификатор автоинкремента), и для согласованности базы данных у меня есть естественный ключ (уникальный), например: (id_category, position)
Когда пользователь перемещает задачу, я должен обновить позицию (запрос ajax) этой задачи в БД, а также позиции всех других задач, которые связаны с изменениями. Например, если вы перемещаете заданную задачу с позиции 5 на позицию 2, задачи с позициями от 4 до 2 должны иметь увеличенную позицию на единицу. (Это мой подход; я знаю, что некоторые люди отправляют весь набор заданий данной категории с новыми позициями, но я пытаюсь обновить только те, которые должны быть)
Проблема в том, что я не знаю, как обновить позицию задач, не избегая дублирующейся ошибки в моем естественном ключе, потому что я не могу / не знаю, как обновить все одновременно.
Так вы могли бы помочь мне с этим или, может быть, я должен изменить свой подход. Я мог бы просто удалить уникальный индекс (естественный ключ), но механизмы согласованности баз данных для чего-то существуют ...
Спасибо за любую помощь.