web开发中最常用的树组件是ztree,之所以好用,是因为只要构造三个基本的属性{id, name, pid},你的树就能完美的展未出来了.
所以在设计表结构的时候,当一个数据要以树形展示的时候,多数就只设计了这三个字段,但是这样在后面的开发中会带来很多的烦燥。例如查询,需要很烦燥的遍历。
在总结一些使用的树的构造基础之上,构造出一种很舒爽的树结构应该是这个样子的
第一,要让id具有结构性。形如 101 01 01 首先要对树的每一层有一个预期,例如第一层不会超过1000,那么第一层就可以以101开头,如果会超过10000,那么就以1001开头,为什么不以0001开头呢,因为这样在构造同级结点的时候需要复杂的操作,如果以101开头,那么在同级结点构造的时候只要+1即可了。
这样构造的结构在后面的使用中会非常的有益,尤其在关系数据库中, 例如想查某个父级部门下的所有人员数据, 只要一个 人员的部门id like '101%' 就能查出下面的数据了。
第二,构造更多的信息来规范树结构以适应更多的web组件,例如: jqgrid。 我在实践中,一般一个树结构只要具有下面的一些属性应该就比较全面了。 {id, code, name, pid, level, isLeaf, open, expanded},如果有特殊情况再扩展即可,这样大多数能展示树的组件就都可以适用了!