1.表設計
createtable
`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.插入操作 祖級列表直接取上級的祖級列表資料拼接當前的上級就可以了
publicintupdatepartyexaminebanktype(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...