假設您正在Netflix上對隊列中的項目進行重新排序。對於我看過的每一個例子,當你把最後一個項目移到最上面時,它會一次一個地更新數據庫中的每個記錄。使用單個數據庫更新解決項目
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. 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
移動其他兩個項目之間的項目將分割排序順序之間的區別:
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並按字母順序排序,這會讓您在無限重新排序所有項目以保持項目之間的工作空間之前進行無限的訴諸。
總而言之,什麼是最聰明的方式來擊中你的數據庫時訴諸?