【PHP】下らねぇ質問はここに書き込みやがれ 46
■ このスレッドは過去ログ倉庫に格納されています
0847nobodyさん
2007/05/23(水) 10:20:24ID:Jt45AIDDデータベースに入ってる項目の並びかえってどうしてますか?
ユーザーが任意の順番に並び変えられるように作りたいのですが、
私が見かけたシステムでは、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は得意じゃないんですよね。
何か意見ありましたらお願いします。
わかりづらい長文をだらだら書いてごめんなさい。
■ このスレッドは過去ログ倉庫に格納されています