Добавьте поле ранг, которое будет отвечать за позицию. Позиция должна задаваться с определёнными промежутками. Например, первая запись — ранг = 100, вторая запись — ранг равен 200, и т.д.
Когда вы переносите запись Вам достаточно изменить ранг на середину промежутка между соответствующими записями. Например, первую запись вы переместили на 50 место, т.е. между 49 и бывшим 50, тогда Вам достаточно установить ранг для новой записи 4950. Остальные записи трогать не надо.
Промежуток между записями выбирается в зависимости от частоты изменений + периодически необходимо производить выравнивание рангов.