0

ファイルテーブルにアイテムのリストがあります。ユーザーがレコードをどのように配置したかに基づいてレコードを並べ替えるのに最も実用的な方法はどれですか。ユーザーごとに数百のレコードが存在する可能性があります。おそらくこれを行うためのより良い方法があり、私は自分の考えを箱に入れましたか?

オプション1:注文が含まれているテーブルがあります。注文列で簡単に並べ替えることができますが、新しいフィールドを追加したり、フロントエンドで並べ替えたりすると、多くのレコードを更新する必要がある場合があります。*例:ファイルが50個ある場合は、file_id1を位置50に変更します。 、50回の更新が必要な場合は、すべての行の順序を順番に変更できます。*

table: file
file_id | name  | order
------------------------
1       | test  | 2
2       | other | 1

オプション2:注文テーブルに基づいてファイルテーブルを整理します。これには、はるかに多くの作業とエラーチェックが必要であり、少し難しいです。それでも、CSV値で1つの行を更新し、それらを配列に変換してファイル列を並べ替えます。

table: file
file_id | name 
----------------------
1       | test
2       | other

table: order
file_order 
----------------------
2,1
4

1 に答える 1

2

オプション 1では、次の SQL リクエストを使用できます。

user_idあなたのfileテーブルにフィールドを追加しました

50 番目のファイルを 3 番目の位置にするには:

UPDATE table SET order=3 WHERE id=50 AND user_id = xxx

UPDATE table SET order=order+1 WHERE id>3 AND id<50 AND user_id = xxx

3 位を 50 位にするには:

UPDATE table SET order=50 WHERE id=3 AND user_id = xxx

UPDATE table SET order=order-1 WHERE id>3 AND id<50 AND user_id = xxx
于 2013-03-18T23:33:10.397 に答える