数据库设计的时候,通常的做法是用父ID来解决树状结构,也有二叉树等等
id pid category_name
然后,用递归就能实现,也有引用数组的方式
<php/
此方法由@Tonton 提供
>
第一种:单表。
列分别为 id、菜单名称、子菜单id列表;
id:菜单的唯一编号
子菜单id列表:用逗号(或其他分隔符)分割的多个id的字符串,再由程序中进行处理,分割出多个id;
优点:查询速度非常快。
缺点:不利于维护和拓展,在进行菜单项排序时需要再多写代码进行处理。
第二种:单表内连接。
列分别为 id、菜单名称、父菜单id;
根节点的父菜单id为null或者0等一个可以唯一标志的。在查询时进行表内连接查询;
优点:利于表结构的维护和拓展,并且符合设计范式;
缺点:在查询时会造成一些麻烦,并且性能上会受到影响。
当然还有很多其他的方法,这里只例举2个比较常用的方法。
解决方法很多!数据要存储为树形结构,那么数据要有父子关系。一个父节点有多个子节点,一个子节点又有多个子子节点。publicclassTreeNode{/节点主键/privateStringid;/节点名称/
定义一个TreeNode类里面有
id 自身id
parentId 父节点id
name 树显示文本
url 链接地址
open 是否展开树
等属性
将从数据库查出来的数据一个个set到TreeNode里面封装成一个List<TreeNode>
再将这个List转换成你的树所需要的格式内容比如json格式
以上就是关于用php调数据库做树状显示全部的内容,包括:用php调数据库做树状显示、oracle数据库,树形结构维护,添加字段值、sql server 2005实现树形菜单显示的数据库表怎么设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)