层级设计以及算法,treetable的实现

本文介绍了在开发中如何处理层级关系数据,以机构为例,采用treetable进行展示。数据库设计考虑了层级顺序,算法通过父ID计算子节点的排序号。代码示例展示了实现过程,但文中提到该设计存在潜在问题。

在开发工具类项目的过程中,或多或少都会涉及到层级关系展示的问题,比如区域、机构,我这里选取机构作为例子,前端选取了treetable,treetable需要数据是父-->子1-->子1子子,子2-->子2子子。所以选择在后端保存数据按照这个思路设计。

数据库设计:

DROP TABLE IF EXISTS `t_department`;
CREATE TABLE `t_department` (
  `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '部门编号',
  `name` varchar(128) COLLATE utf8_bin NOT NULL COMMENT '部门名称',
  `pid` int(10) DEFAULT NULL COMMENT '父级编号',
  `pids` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT '所有父级编号',
  `remark` varchar(512) COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
  `creater` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '创建者',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `updater` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `del_flag` char(1) COLLATE utf8_bin NOT NULL DEFAULT '0' COMMENT '删除标记',
  `seq` varchar(250) COLLATE utf8_bin NOT NULL COMMENT '排序号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEF
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值