本文主要是介绍mysql 存储层级关系_PHP MySQL 存储层级结构的两种方式 邻接表和MPTT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
层级结构,也叫树形结构。在关系型数据库中保存树状结构数据,常用的方法有两种:
邻接表(Adjacency List)
修改过的前序遍历算法(MPTT)
要存储的树状结构数据图如下
表名:Food
1、邻接表
邻接表依赖于pid字段连接上下级。id为自增主键,pid为上一节点的id,例如:Apple的上一节点是Red,所以 Apple pid = Red id
1.1 打印树结构
1 classTree2 {3 private $treeM; //pdo实例
4 private $tname; //表名称
5 private $stmt; //结果集
6 private $res; //结果
7 public function __construct(TreeM $treeM, $tname)8 {9 $this->treeM = $treeM->getTreeM();10 $this->tname = $tname;11 }12 /**13 * 打印树结构14 * @param {Int} $root_id 父节点id,为0则显示整个树结构15 * @param {Int} $level 当前节点所处的层级,用于缩进显示节点16 */
17 public function show_tree($root_id = 0, $level)18 {19 //1. 获取父节点
20 $this->stmt = $this->treeM->query("select id, title from {$this->tname} where pid={$root_id}");21 $this->res = $this->stmt->fetchAll(2);22 foreach ($this->res as $row) {23 //2. 缩进显示
24 echo '
26 $this->
这篇关于mysql 存储层级关系_PHP MySQL 存储层级结构的两种方式 邻接表和MPTT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!