私のアプリケーションでは、ユーザーはお気に入りの本を好きな順序で並べ替えることができます。
データベースに「本」テーブルがあり、各本の行があります。現在、各本の位置を格納する「position」と呼ばれる整数列があります。1つは一番上の本、2つは次の本などです。
問題は、誰かが本をたとえば位置#11000から位置#1にドラッグした場合、データベースに11,000回の更新を行う必要があることです。これは非効率的なようです。これを行うためのより良い方法はありますか?
私が持っていたアイデアの1つは、「book_sort_orderings」などと呼ばれる別のテーブルを作成し、ユーザーごとに1つの行を作成することです。また、1つの列は、書籍IDの並べ替えられたリストを格納する巨大なテキスト列になります。次に、ユーザーが本を再配置するときに、この値をコードに引き出し、そこで再配置を実行して、データベースの行を更新できます。もちろん、本が追加または削除されるたびに、この配列も更新する必要があります。これは物事を進めるための「正しい」方法ですか?または、現在の設定を変更せずに処理を高速化するためにできる賢い方法はありますか?