什么是预排序遍历树算法(MPTT)

阅读: 评论:0

什么是预排序遍历树算法(MPTT)

什么是预排序遍历树算法(MPTT)

在了解什么是『预排序遍历树算法』之前,我们先思考一个问题如何处理『多级分类的子分类查询』。例如:

要存储表示层级关系的数据,一种最简单的方案,存储当前分类的名称,以及上一级分类的名称,通常我们称这种存储结构为『邻接表』。

数据库存储结构:

分类名称父级分类
food
fruitfood
meatfood
applefruit
breefmeat
porkmeat

这种方式有什么问题:查询效率过低。当我们在程序里查询 food 的子分类时,要先在数据库中,查询 food 的一级子分类(fruit、meat)、在对一级分类的子分类进行递归查询,需要进行 logN 次( N 为子分类个数) I/O 操作(向数据库进行查询),这样的查询效率不高,但是很容易实现。

而 MPTT 预排序生成树算法正是为了解决多层级关系数据的查询效率问题。

MPTT 是什么?

MPTT(Modified Preorder Tree Taversal)预排序遍历树算法,主要应用于层级关系的存储和遍历。

在 MPTT 中是如何表示层级关系的:

MTTP 不直接存储父分类信息,而是通过 left、right 指来表示层级关系。

还是以 food 为例,我们从头开始构建一棵『预排序遍历树』。

# 创建数据表,left_value、right_value 表示左右子树区间
CREATE TABLE `product_category` (`id` int(11) NOT NULL AUTO_INCREMENT,category_name varchar(20) not null,left_value int(10) not null,right_value int(10) not null,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHA

本文发布于:2024-02-02 05:46:32,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170682399141756.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:遍历   算法   MPTT
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23