微妙にPHPと関係ないかもしれないんですけど、質問させてください。

データベースに入ってる項目の並びかえってどうしてますか?
ユーザーが任意の順番に並び変えられるように作りたいのですが、
私が見かけたシステムでは、sort_orderというFLOATのカラムを持たせて
アプリ側では、各項目に↑↓の矢印があって一回変えるたびにその行の
sort_orderをDB登録してあげたり下げたりしていました。

新しい場所の上と下のsort_orderの間に入れるので2で割って、sort_orderが1000.5みたいに
FLOATにしてるみたいでした。

で、作りたいものは、ドラッグアンドドロップで並び替えられるようにしたいんです。
aculo.usを使って画面側はなんとなくできてるんですけど、今の仕様だと
並び替えたもののsort_orderが上から順番に通し番号が振られる感じなんです。
つまり並び替えた対象のほとんどの行のsort_orderを更新することになります。

これをこのまま、DBに登録するとなると、UPDATE対象が上記の方法より格段に増えるじゃないですか?
といっても、一番多い並び替えは5〜10件くらいのUPDATEで済みそうで、最高でも100件はないと思うんですよ。

並び替えの回数自体はユーザーしだいなのでなんともいませんが
、1ユーザー毎日2・3回、予想ユーザーは1000人くらいでしょうか。
sort_orderにはINDEXもはっていないし、サーバーも専用で結構パワーがあって、メモリも4G積んでるので
問題ないかなって気もするですけど、この設計ってまずいでしょうか?

他に思いつくのは、受け取った並び順をPHP側で、更新前のsort_orderと見比べて前者のFLOATを使っていた
時と同じような、パターンのsort_orderに変換して、更新のあったものを登録するとか・・・めんどい><

javascript側でその様な機能を実装するとか・・・あんまりjsは得意じゃないんですよね。

何か意見ありましたらお願いします。
わかりづらい長文をだらだら書いてごめんなさい。