無限極設計以及隨意移動節點(樹結構)

2022-07-12 03:45:10 字數 2169 閱讀 1114

1.表設計

create

table

`party_examine_bank_type` (

`id`

bigint(20) not

null comment '

型別id',

`ancestors`

text comment '

祖級列表',

`parent_id`

bigint(20) default'0

' comment '

父id'

, `name`

varchar(200) default

'' comment '名稱'

, `sort`

int(4) default'0

' comment '

顯示順序',

`status`

char(1) default'0

' comment '

狀態(0正常 1停用)',

`is_delete`

char(1) default'0

' comment '

刪除標誌(0代表存在 1代表刪除)',

`create_time`

bigint(20) default'0

' comment '

建立時間',

`update_time`

bigint(20) default'0

' comment '

更新時間',

`supplier_id`

bigint(20) default

null comment '

商戶編號',

primary

key(`id`)

) engine

=innodb default charset=utf8 comment=

'型別表

2.插入操作 祖級列表直接取上級的祖級列表資料拼接當前的上級就可以了

public

intupdatepartyexaminebanktype(partyexaminebanktype partyexaminebanktype)

else

}if(userconstants.dept_normal.equals(partyexaminebanktype.getstatus()))

return

result;

}

/**

* 修改子元素關係**

@param

typeid 被修改的型別id

* @param

newancestors 新的父id集合

* @param

oldancestors 舊的父id集合

**/public

void

updatebankchildren(long typeid, string newancestors, string oldancestors)

if (children.size() > 0)

}

/**

* 修改子元素關係(上下級互換用)**

@param

typeid 被修改的型別id

* @param

newancestors 新的父id集合

* @param

oldancestors 舊的父id集合

* @param

param 新的父id與舊的父id之間間隔的級別

*/public

void

updatebankrelationchildren(long typeid, string newancestors, string oldancestors,long newparentid,string param)

continue

; }

child.setancestors(child.getancestors().replace(oldancestors, newancestors));

}if (children.size() > 0)

}

無限極分類

面試的時候被問到無限極分類的設計和實現,比較常見的做法是在建表的時候,增加乙個pid欄位用來區別自己所屬的分類 array array array id 1,pid 0,name 河北省 array id 2,pid 0,name 北京市 array id 3,pid 1,name 邯鄲市 arra...

mysql無限極的設計方式

前言 無限級實現的方式很多,以往常常使用 遞迴查詢 或者 查詢後 陣列拼裝來解決,本次介紹的為 mysql 設定排序字段方式來解決原理 字元型的比較是通過 ascii 從左向右逐個比較,直到某一處 比較出結果才停止 通過這樣的規律 我們可以發現,越是排列和值越是相似的字串將 比較的次數越多 例如 0...

php無限極分類以及遞迴 thinkphp

php無限極分類 無限極分類重點在於表的設計 1在model中 class catmodel extends model public function gettree parent id 0,lev 0 return tree 2在controller中 class goodscontroller...