Re: [請益] 自訂排序
我是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
07/14 11:31, 1F
→
07/14 11:31, , 2F
07/14 11:31, 2F
→
07/14 11:32, , 3F
07/14 11:32, 3F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章