Re: [請益] 該怎麼設計目錄的資料表呢!?
※ 引述《kingoface (桑原)》之銘言:
: 類似的東西,代表須要在php中想辦法包html進去...
如果節點陣列都有了,html碼多用幾個巢狀迴圈就可以了。
我來講一下更新。
假設原本是這樣
1A16
┌──┴────┐
2B9 10C15
┌──┼──┐ ┌─┴─┐
3D4 5E6 7F8 11G12 13H14
要新增一個節點 K
1A18
┌───┴───┐
2B11 12C17
┌──┼──┐ ┌─┴─┐
3D4 5E8 9F10 13G14 15H16
│
6K7
可以看出來:
1. K 的左側號碼往前推,不變。 ( 1 到 5 不變)
2. K 的右側號碼往後推,通通加 2 。 ( 原本 6 以後的數字通通加 2)
第1點因為不變動,可以不管它。第2點又可以歸納成下面新兩點
1. 旁系血親的兩側號碼都加 2,例如 F, G, H, C
2. 直系血親的右側號碼加 2,例如 E, B, A
最後再新增。
SQL:
UPDATE menu SET left = left+2, right = right+2 WHERE left > 5; //F, G, H, C
UPDATE menu SET right = right+2 WHERE left<=5 AND right > 5; //E, B, A
INSERT INTO menu SET node='K', left = 6, right = 7;
(5 這個數字可以代換成變數)
不知道是否有更好的寫法?
或許那兩句 UPDATE 可以用 case 或 if 合併成一句?
就算可以,閱讀上應該比較不容易?
效率又會是如何呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.7.114
※ 編輯: anawak 來自: 61.231.7.114 (10/22 01:20)
推
10/22 14:28, , 1F
10/22 14:28, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 6 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章