Re: [請益] 自訂排序

看板PHP作者 (SoccerMan)時間16年前 (2009/07/14 11:11), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串2/4 (看更多)
我是php的新手 最近我也問到此種問題 所以想把我的想法提出來跟大家討論一下 請各前輩指導小弟的想法是否正確 我有點看不太懂ottokang大的排序方式 假設書籤一要與書籤四 exchange 的話 * 書籤一 * 書籤二 * 書籤三 * 書籤四 結果是 * 書籤四 * 書籤二 * 書籤三 * 書籤一 那應該是用每筆新增一欄位 order 來記錄排序順序 更動時再去更改該兩筆 order欄位的值 但如果不是exchange的話 那結果應該是 * 書籤四 * 書籤一 * 書籤二 * 書籤三 這樣是不是用linked list的想法 每筆data皆新增一 nextdata欄位 來記錄下一筆資料的 PK 值 id(PK) data nextdata isFirst ______________________________________________________ 0 書籤一 1 1→0 1 書籤二 2 0 2 書籤三 3→null 0 3 書籤四 null→0 0→1 更動時可能要再去判斷是否與第一筆資料最更換 這樣對資料庫的loading 會比用array小得多 但小弟有個問題 如果用此種方法 要echo 出資料時 不是都要query一次找到一筆資料 再藉由 nextdata 的值作為條件 再query一次 直到 nextdata 為 null 停止 這樣 bigO 就跟直接用array快差不多了 QQ 有什麼辦法解決嗎? 謝謝 ※ 引述《ottokang (貓貓的大玩偶)》之銘言: : 假設我有一堆資料,譬如書籤好了 : * 書籤一 : * 書籤二 : * 書籤三 : * 書籤四 : (以下省略) : 現在想要讓書籤三跟書籤四的位置交換 : * 書籤一 : * 書籤二 : * 書籤四 : * 書籤三 : 以後也可以任意移動書籤的排序方式,像這樣子的管理方式,資料庫要怎樣設計? : 我有想過增加一個Order欄位,但是如果更動,幾乎就要全部資料庫都改過 : 這樣似乎不是很有效率,請問各位版友有更好的意見嗎~感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.69.147 ※ 編輯: brian70545 來自: 114.39.69.147 (07/14 11:12) ※ 編輯: brian70545 來自: 114.39.69.147 (07/14 11:14)

07/14 11:31, , 1F
我們老師有教過我一招...另設一個oder值 = 100*id值
07/14 11:31, 1F

07/14 11:31, , 2F
然後排序看使用者要插到哪裡...計算前後order值相加
07/14 11:31, 2F

07/14 11:32, , 3F
除以2...
07/14 11:32, 3F
文章代碼(AID): #1AM_T_Nm (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
文章代碼(AID): #1AM_T_Nm (PHP)