Netflix のキューにあるアイテムを並べ替えているとします。私が見たこの種のすべての例では、最後のアイテムを一番上に移動すると、データベース内のすべてのレコードが一度に 1 つずつ更新されます。
1. One Fine Day ==> change sort order from 1 to 2
2. Two and a Half Men ==> change sort order from 2 to 3
3. Three Kings (move to top) ==> change sort order from 3 to 1
これを行うより良い方法はありますか?アイテムを再注文するたびにデータベースの更新が 1 回しか必要ないものでしょうか? このことを考慮:
1. One Fine Day ==> do nothing (sort order stays at 1)
2. Two and a Half Men ==> do nothing (sort order stays at 2)
3. Three Kings (move to top) ==> change sort order from 3 to 0
他の 2 つのアイテム間でアイテムを移動すると、並べ替え順序の違いが分割されます。
1. One Fine Day ==> do nothing (sort order stays at 1)
2. Two and a Half Men ==> do nothing (sort order stays at 2)
3. Three Kings (move to mid) ==> change sort order from 3 to 2.5
さらに一歩進んで、数字だけでなく、より大きな文字セットを使用することもできます。たとえば、base64 に移動してアルファベット順に並べ替えると、アイテム間の作業スペースを確保するためにすべてのアイテムを並べ替える前に、ほぼ無制限に並べ替えることができます。
とにかく、頼りにするときに DB をヒットする最も賢い方法は何ですか?