Se haverão tantos itens para ordenar no banco, você poderia fazer uma lista encadeada com o id referente ao próximo item e colocar uma flag no item que é a cabeça da lista, dessa forma o front fará a ordenação e você não irá precisar atualizar mais do que duas entradas na tabela do banco.