質問: jQueryUIのsortableで表の並び替えをできるようにしました。 しかし、DBをどう更新するかでロジックが思い浮かばず、みなさんのお知恵を拝借したいです。 表はid順に並んでおり、変更後にAjaxでサーバー側にJSONを送る仕組みになっています。 **テーブル構造** ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/3098925f53d5c9d88248f6d2139f6edc.jpeg) 変更後にすべてのデータのidをUPDATEで書き換えるしか方法はないのでしょうか? 各ユーザーが並び替えするたびに全データをUPDATEするのは現実的でないようにも思えます。 みなさんならどうしますか?
回答: 1. priorityというカラムを用意する(これを表示時のORDER BYに使う) 2. 既存データに1000単位でデータを入れていく(1レコード目:1000,2レコード目:2000...) 3. 入れ替えが発生した時、前後のpriorityの半分の値にして更新をかける 4. 前後のpriorityの差が1になってしまった時、全レコードを2の手順と同じ方法で1000単位で振り分けなおす(1日おきに定期的に振りなおしてもよいと思います)