我有一個項目一個長長的清單(比如,幾百萬的項目),我們把它叫做mytable的,它有領域mytable.itemid。創建一個MySQL表的排序,而無需使用數字(因爲當時它很難把東西之間)
的項目被賦予的順序,並且可以重新=通過拖放用戶訂購。如果我添加一個名爲mytable.order的字段,並將數字放入其中,則會產生問題:如果我想在兩個其他項之間移動項目,該怎麼辦?那麼所有的訂單字段都必須更新?這似乎是一場噩夢。
是否有一個(可擴展)的方式來增加以表是從只給每個項目一個號碼,以便通過不同的,也SQL查詢的負載每次順序改變?
你可以使用浮點值,或者你可以空間出號開始說起,例如使用1000,2000,3000,等再減半每個區間時,你需要在它們之間移動行。最終你將不得不調整一些數字,但是它會在更大的間隔內發生,而不是一舉一動。另外,如果您在使用連續數字時將一個項目向上移動10行,則只需調整11行。首先調整你正在移動的那一行上面的10行,然後將移動行的排序順序設置爲新的值。 – 2010-06-14 22:26:47