
增加两个字段叫layer(层数)和layerorder(层次序)
id为A且在第一层的layer=1,layerorder=000A(看你ID的位数而定)
id为B且在第二层parentid为A的,layer=2,layerorder=000A000B
id为C且在第三层parentid为B的,layer=3,layerorder=000A000B000C
依次类推
如果知道某部门ID想搜索子部门,那只需要
select id ,name from XX where layerorder like 某部门ID+"%"
这样就可以把子部门全搜索出来,还可以加上layer作为搜索条件限制只要第几层的,具体实现你可以自己摸索下~~
需要对部门表(数据库表)进行设计,在表中增加一个"parentDepartId"。最上层的部门的parentDepartId=0,其他的部门的parentDepartId是他的上级部门的departId。
这样就形成了树形结构,你通过一个部门的departId去对应其他部门的parentDepartId,就可以找到对应关系了。
不建议做单表自联结,还是用单独的映射表比较好比如
部门表
ID 名称
部门映射表
父ID 子ID
然后通过映射表内联父子来递归出树形结构。
无分无码
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)