我有一個(Postgres)數據庫表,我想添加一個手動「排序」字段。在應用程序的前端,我將有一個拖放字段,以便用戶可以手動重新排序條目,然後發佈一個AJAX請求,重新排序數據庫中的條目,我只是想知道如何在數據庫中進行編排。數據庫模式:手動排序表的標準方式是什麼?
例如,我能想到的最明顯的選擇是增加每個條目的'sort'整數,排序值> =新排序的選項,但這會過度(並且我認爲,不必要地)如果這些列表超出了少數幾個項目,那麼數據庫就會很重。
另一種選擇是讓「排序」列一個BigDecimal,並使其價值
SortValue[A] = SortValue[B] + (SortValue[C] - SortValue[B])/2
其中A是我重新排序場,B是場直接在上面它和C是它下面的字段,但這似乎是一個非常混亂的解決方案,更不用說可能受小數點限制。
我確定這是一個非常普遍的問題。有效地允許手動排序數據庫表的標準方法是什麼?
乾杯......
我猜你希望用戶能夠手動排序;例如,將歌曲拖放到有序播放列表中。之後,您希望能夠以用戶選擇的順序訪問或顯示它們。對? – 2011-12-24 08:09:56
是的,這是正確的 – PlankTon 2011-12-24 08:39:48