首页 技术 正文
技术 2022年11月15日
0 收藏 920 点赞 2,259 浏览 139123 个字

MySQL基于左右值编码的树形数据库表结构设计 在关系型数据库中设计树形的数据结构一直是一个十分考验开发者能力的,最常用的方案有主从表方案和继承关系(parent_id)方案。主从表方案的最大缺点是树形结构的深度扩展困难,一般来说都是固定的,适合深度固定的需求。继承关系方案设计和实现自然而然,非常直观和方便。缺点当然也是非常的突出:由于直接地记录了节点之间的继承关系,因此对Tree的任何 CRUD操作都将是低效的,这主要归根于频繁的“递归”操作,递归过程不断地访问数据库,每次数据库IO都会有时间开销。因此这种方案适合Tree规模相对较小的情况,我们可以借助于缓存机制来做优化,将Tree的信息载入内存进行处理,避免直接对数据库IO操作的性能开销。理想中树形结构应该具备如下特征:检索遍历过程简单高效;节点增删改查CRUD操作高效;数据存储冗余度小、直观性强。笔者在查阅网上相关资料之后整理了一个基于左右值编码的树形结构的数据库表结构设计方案,并在MySQL数据库中实现。首先我们记住以下这张图MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图一 左右值属性结构采用深度优先遍历给树中的每个节点分配两个值,一个左值和一个右值。节点左边的值比该节点的所有子孙节点值都要小,节点右边的值比该节点的所有子孙节点值都要大。例如:

B左边的值为2,其比Hell Mayes的所有子孙节点的值都要小(D[3,4]、E[5,10]、I[6,7]、J[8,9]、F[11,12])B右边的值为13,其比Hell Mayes的所有子孙节点的值都要大(D[3,4]、E[5,10]、I[6,7]、J[8,9]、F[11,12])

有了这个规则整棵树的结构通过左值和右值存储了下来。接下来我们在MySQL中建表,并实现整棵树的CURD方法创建表结构

CREATE TABLE `tree` (`node_id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(45) DEFAULT NULL,`lft` int(11) DEFAULT NULL,`rgt` int(11) DEFAULT NULL,PRIMARY KEY (`node_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

INSERT INTO `tree` VALUES(1,’A’,1,20),(2,’B’,2,13),(3,’C’,14,19),(4,’D’,3,4),(5,’E’,5,10),(6,’F’,11,12),(7,’G’,15,16),(8,’H’,17,18),(9,’I’,6,7),(10,’J’,8,9);

准备工作就绪。1)获取某个节点的子孙节点以B为例:

SELECT* FROM Tree WHERE Lft BETWEEN 2 AND 13 ORDER BY Lft ASC

MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图二 B的子孙节点某个节点到底有多少的子孙节点呢?通过该节点的左、右值我们可以将其子孙节点圈进来,则子孙总数 = (右值 – 左值– 1) / 2,以B为例,其子孙总数为:(13–2 – 1) / 2 = 5。同时,为了更为直观地展现树形结构,我们需要知道节点在树中所处的层次,通过左、右值的SQL查询即可实现。以B为例:

SELECT COUNT(*) FROM Tree WHERE Lft <= 2 AND Rgt >=13

结果为2,表明B处于该树的第二层。为了方便描述,我们可以为Tree建立一个视图,添加一个层次字段,该字段值可以写一个自定义函数来计算,函数定义如下:定义计算指定节点所在层的函数CountLayer

CREATE DEFINER=`root`@`localhost` FUNCTION `CountLayer`(p_node_id int) RETURNS int(11)BEGINdeclare p_result,p_lft,p_rgt int default 0;if exists (select 1 from tree where node_id=p_node_id) thenbeginselect lft, rgt into p_lft, p_rgt from tree where node_id=p_node_id;select count(*) into p_result from tree where lft <= p_lft and rgt >= p_rgt;end;return p_result;end if;RETURN 0;END

函数名称为CountLayer,需传入指定节点的id。此时我们可以基于刚刚定义的层计算函数来创建一个包含层次字段的试图。定义层次试图Tree_View

CREATEALGORITHM = UNDEFINEDDEFINER = `root`@`localhost`SQL SECURITY DEFINERVIEW `tree_view` ASSELECT`tree`.`node_id` AS `node_id`,`tree`.`name` AS `name`,`tree`.`lft` AS `lft`,`tree`.`rgt` AS `rgt`,COUNTLAYER(`tree`.`node_id`) AS `layer`FROM`tree`ORDER BY `tree`.`lft`

MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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MzQAqctpR3abJSkNrUEgEk4GwCh1OcJbbYWNRyE9zRyE9zUtFNpkRchPc12hAQMDP766optXFQxa7fdLJbE3CBFlpZabcbEhlLgQsJGFDIOD86t6rLW8oWiEMDZhH8opvnq7CrxqbDFFL89XYUc9XYU402GKKX56uwo56uwpxpsMUm5aLa9dGrm7boi7g0nQ3KUykuoTvsF4yBufj8TUqXlFQGBua856uwpxppiil+ersKOersKcabDFFL89XYUc9XYU402JXWm32VsvNocacSUrQtOUqB2IIPUVDBt8K1xExLfDjxIyCSlmO0ltCcnJwkADrXReUANhuK856uwpxppiil+ersKOersKcabDFcOtNvsrZebQ404kpWhacpUDsQQeoqLnq7CvS8oAbDcVONNSttoabS22hKEIASlKRgADoAK6pfnq7Cjnq7CrxpsMUUvz1dhRz1dhTjTYYqNthplTim2kIU6rW4UpAK1YAye5wAM/IVwXlADYbivOersKcaaYopfnq7Cjnq7CnGmwxRS/PV2FStLK05OOtSyw1huK3IjX5MpK5kr0ZAgjQv0gs5Xo9lOQRnJ209D0wappcm1zOIjJbfiP3hy4Q1Wp1C0qdVE0t8wtkblv9I1Y265rfWz/AKVD/wD4I/lFNVyTxZfnz/xm3xgoooogooooOke+n6islxe7aXpVpiPLhuXdM6M7FZVpU+lPNTrUhPvAaUqyRtgHPStaj30/UVzT3l+2L7CiiiiCiiigo+NVITwnK5n+WQhK1EZQlJcGVOD4tgZKx8U6tx1Fd+T8NItc9uOuE5GTNXynbcnREWnSndlOSEjrqAKhr1b9teron6f81zSeLat8yQUUUUQVU8Vx/SeGZTZkx47YQlbipLmhpSErClIWr9VCkgpJ3wFHY9Ktq6V0T9P+almrLl1keAsqt1wcaixIsBcwmGzCdLkcI0ICi0ooR7BWFnZIGSSM5zWsoorSCiiioFbt6wNrdFr5HpxRhr0hRSgHPxIBPTPwNZrgWPMiOX6PLjstFM8EluWuQVLLLZUSpSEk52OcdSRgYGdiron6f81zSeLb89Vvpgoooogphj3D9aXphj3D9anV6NT1VzE6Ba+HIku4yo0SMlhoKekOJbQCQAMqVgdasmy062lxsoWhYCkqTggg9CDWIvkaSprhqamRco8WNFXl23Q0ynUPKQgIOgtuHGnmDUE7asZAJrW2Zyc7ZYLlzbDc5TCDIQABheBqGxIG/wAzXHPMas9DmhPhHlRoT4R5V1RQc6E+EeVGhPhHlXVFB5oSP1R5VVXHiLh+zyUxrnebZCfUkLDUmU22op6Zwog42NW1ZWRZ7hM4yuEhi63K2s+hxkhcZpkpdIU7kZdbXuMjpj3t/hT3PZqAlBGQlJH0o0J8I8q6Gw65ooOdCfCPKjQnwjyrqig80J8I8qgMiII7kgvMchvVzHNQ0o0khWT0GCDntg1K9oLLnNRrb0nUnTqyMbjHx+lfOC1Ce/JTdIAskzS25JEaIq0PBSVKdWpoobLecAFJBAwnuMU0x9I0I8KfKjQnwjyqOJIRKhsvtpdShxIUA60ptY+qVAKB+RANTVUnmOdCfCPKvdCfCPKva4e0Flzmo1t6TqTp1ZGNxj4/SpauEZt5s1tiiVPuUCLHLhaDr76EIKwSCnJOMgg7fI062WnW0uNlC0LAUlScEEHoQa+f2y7os3CLTUGx3BDwnSGo4NmkBMVC3FqSsthvVo0EbJG5ISSncjZcPx40Th+BGhh8R2mEtt89lTS8AY9pCgCk/IgVfuLDQnwjyo0J8I8q6oqCJ9yPGjuPyFtNMtJK1uOEJShI3JJOwAqC33G23eN6TbZkSbH1FPNjOpcTkdRlJIzXVxeaj2955+O5IaQnK2mmi6pQ+SBur6DJ7VS8JB1arrIWmWtp+SFtSZsdTD74DaQSpspTpAI0j2E5Cc4JypSDRaE+EeVGhPhHlXVFBzoT4R5V6AB0AFe0UCdp/wCjQf8Ax2/5RTlZwXiPabJb1yTJIcaQhCI8dx9ZOjPutpUrGB1xirKJNbnRGZcZ4uMPIC21jIyCMjrWuKasaKU1q8R86NavEfOnFORuilNavEfOjWrxHzpxORuilULUVp9o9e9Vly4ghWl1pmS9IU+6CpDEaO5IcKR1VobSpWkEgasYyQM704rq9oqvjS0S4rUlhxSmnUBaFbjIIyNjuP31LrV4j51eCcjdFKa1eI+dGtXiPnU4nI3RSjjvLb1rc0pSklSirAA33NVzXEFtes6ru1cG125Or/EJVlB0qKTg/HcYGOvwzmnH3XV5RVbEmtzobEuM6pbD7aXG1YI1JIyDg7jY/Gp9avEfOrwsTkbopTWrxHzocd5betbmlKUkqUVYAG+5qcV03RWac4vs6IDE5ucuRHkKWllURlx8uaCQpSUtpJKQR72MdN9xVszJRJYbfYeDrLiQtC0KylSTuCD8RTinI/RSmtXiPnRrV4j504nI3RVfNmtwYS5T7i0tNIK1lKVKOB2AySfkBmlrZeot3acciOvfml8txt5lxlxCsA4UhYChsQdxuDTiurmilNavEfOjWrxHzpxTkbopTWrxHzqdkkoOSTv8aXpxZWXlrfHDsJlq2Tp7bzKEuCDKSw6j2QQQouI22xsrPyIzT1hiyYVggRZgaEhphKHA0kBIIHQBIA2+QA+VMWxCjaYfsn/IR8P9IpvQrwnyrUZrmiutCvCfKjQrwnyqjmiutCvCfKjQrwnyoBHvp+orOTkXG28SOXSNbH7lHkxW2FNx3W0uMqQpagcOLSkpIWc4OQUjY520iEKC0+yevavNCvCfKp7ntiCM467FacfZ5DqkBS2tQVoJG4yNjjuKlrrQrwnyo0K8J8qujmiutCvCfKjQrwnyoOXFFLQUElZCSQlOMnrsM7VioFhn3SzJbli6WV+NLkPtoSqK4HeY4paSR+dTsFfIg5x8DW4UhWE+yenb515oV4T5VLJZlXVPwxBk2zhe1wpi3FyGIyEOczTkKAGU+yANun7up61bV1oV4T5UaFeE+VavVt1mTHNDiiloKCSshJISnGT12Gdq60K8J8q9UhWE+yenb51Kr563b7ubQ283abzBurMmUGVMPw88t5wue1rUtGjZGcAqBTsCOuvsdvVabBb7ctwOLjR22lLHRRSkAkfKrLQrwnyo0K8J8qTwVzRXWhXhPlRoV4T5UCtyfkxra8/ChmZKQ0VNRw4lvmq3wnUrYZ7mqrhhEsRpLtwgS40593mvrkln84rAHsBtxYCUgBIBOdt8nJOgUhWE+yenb515oV4T5UhXNFdaFeE+VGhXhPlQc0wx7h+tQ6FeE+VTsghByCN/jWer0WKlE+Rb7BbnGLVMuBLCApEZbKSgaRuea4gY+hNN2W6t3uzRbmyw8w1JRrQh4J1AfAnSSN+oIJ2IqulQJd04RiQIrqGkyGWm5DhUQpLJA16MD3inIHTGc/DBvm20MtIabQENoSEpSkYAA6AViNV1RRRQFFFFAVUXK/CDOTBjW6bcphb5y2InLBbbzgKUXFoSMkEAZycHbY4t6zN9s1zdnyJdrDLwmRkR5DLs12GpOhSlIWh1pKlA+2oEYGdtxuDKsaKO96RGae5bjfMQFaHE6VJyM4I+BqSk7VGfh2eFFlPl+Qywht14qKi4oJAKsnc5O+TTlavr4ZnoKKKKiuVqCEKWckJGTpBJ/cBuaoFcXxlWuFOh264S/TZS4rEdDaGnStHMySHVICRhpR3IPTbO1X6yoIUUAKXj2Qo4BPzO+KxSLBeXOHfQLjYOHLioTXpHo8qUtxrC1LWFAqYOFJK8e6cjO46VKrZRnVvxm3XI7kda0gqZdKSpB7HSSM/QkfOpaQskBy12KBAee57sZhDS3N/aIABO++PrT9avr4ZnoK5WoIQpZyQkZOkEn9wG5rquVlQQooAUvHshRwCfmd8VKqiTxZFftsaXCg3CW5KdcaYioZCHlctRSokOFIQBpJ9sp6ge8QKvW1FbaVKQpBIBKFYyn5HBI8jXz5XBtzlxYrlzsvD89+M9LKIkmQp1lSX3A5q1KYylaSAB7JyCdxmtrZoTttssGC9IMh2Owhpbxz7ZAAzuSfMmqHqKKKghlvmLEdfDDr5bQVBpkArWeyQSBk/MgfMUnZ7wLsmUlUKTCfiu8p5iSWypJKUrG7alJOUqB2NNzTLEN0wUsLlBOW0vqKUKPYkAkD54OOx6VU8M2mVa2phkMRIiX3uY3BhOKWzHGkA6SUp94gqOEpGVHqckoL2iiigKKKKBK0rSLPB9ofo7fx/0im9afEPOsXdOIzw9ZLWoNwsPMj87PmeispwgHTzNKvbPwTjfCt9q0MGV6bb40vkuM89pLnKdGFIyM4I7itzp1m3FnrT4h50a0+IedKUU4nI3rT4h50a0+IedKUU4nI5rSf1h515rT4h50sj30/UVnp/F9otN5k265z4MFTUdt9tUmUhsu6isEAKx00Dff3qlknqu2tVrT4h50a0+IedVFpn+tLPCuAb5fpTCHtGrVp1JBxn49acrV6MuVJ1ab1p8Q86NafEPOlKKnE5HNafEPOvNafEPOlHFFLQUElZCSQlOMnrsM7Vn2r9cZthTc4VsjNqS48l5mfN5PKS2tSSSpCHAT7O4Gw7mpZJNq7Wr1p8Q86NafEPOqSx3B+62SHPkRBEdkNhwshZXpB6bkA7jB3AO9WFW9GeE5ab1p8Q8691p8Q86TocUUtBQSVkJJCU4yeuwztTiab1p8Q86NafEPOsLM43VHs0WeYMaIX3n2yLnOTHbbLaynSpxKVjWrGyRkHCt9t9PBlem2+NL5LjPPaS5ynRhSMjOCO4pxNWetPiHnRrT4h50pRTichKvFsgOhqZcYkdxSdQS8+lBI6ZwT02PlUH9pbD+27b96R/WvmH5TUNucWwEPO8poxEBbgTq0jmOZOPj9Kyd3trdtdZSh15XMb1lD7PKdb3IwpOpWMgAjfcGvX7H4Z2+50dPVeqy38nj9/8AE+52+vq6Z0yzp/N97/tLYf23bfvSP60f2lsP7btv3pH9a/OdFdj+i9v+6uv/AFruf2x+jP7S2H9t2370j+tOxJ0Se0XYUpiS2FaStlwLAPXGR8dx51+Zq+yfkm/+Kyv/ADV/yIrqfW/hvR9P2v4k6tdv6L8S6/qO7/DvThqTZJNzg2uRDmR2HWohZUiVF9IZcbcSnUCjUk59kb56Egg52u7ZBTbLXEgIcW4iM0loLc95QSMZOKktbKjaIRyN2Efyim+QruK8yWSPUqKipeQruKOQruKumIqKl5Cu4o5Cu4ppjhHvp+oqtTbNN2mzud+lR2mNGn3dBWc5zvnX/wCqtksqCgcjY15yFdxUuXxTyrrTB9V2eFA5nN9GYQzr06dWlIGcb46U5UvIV3FHIV3FW9W3aYioqXkK7ijkK7immInAotAIIC9J0lQyAd+o+NZePwvPNgctE+6R3mXpSnnixDU1zGlLLi2t3Fe8SRnwkjGd61xZUQNxsK85Cu4qbDyiAwMDpRUvIV3FHIV3FXTEVDgUWgEEBek6SoZAO/UfGpeQruK9LKiBuNhU2DENcIXdqO2FXm3uPoVJH5y2KUypt9WpaVNl7JOehChsSCDnNae2QU2y1xICHFuIjNJaC3PeUEjGTin+QruKOQruKuyCKipeQruKOQruKaY+S/lLWy3xbAXIZLzIhp1thekqHMc6H4VkLjPaltRY8dhbMeMhSUBx3mLOpRUcqAA6noAK+ocacC3PiO7sS4b8RDbccNEPLUDkKUfgk7e0Kzn901+/7u2/xF/gr6X6Tvdqdno5XzP1fM/Wdru3vdfGeL+jB0VvP7pr9/3dt/iL/BR/dNfv+7tv8Rf4K7f812vv/l0/5Xu/b/DB19k/JN/8Vlf+av8AkRWX/umv3/d23+Iv8Fb/AIH4el8NWV6FNcYccXIU6CyokYKUj4gb+ya878U7/b6/p7Om+8ej+F9judH1EvVPav/Z" alt="" />图三 各节点所处的层次此时我们来创建一个存储过程,用来获取给定节点的所有子孙节点和每个节点所在的层。获取所有子孙节点的存储过程GetChildrenNodeList

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetChildrenNodeList`(in p_node_id int)BEGINdeclare p_lft,p_rgt int default 0;if exists (select node_id from tree where node_id=p_node_id) thenbeginselect lft,rgt into p_lft,p_rgt from tree where node_id=p_node_id;select * from Tree_View where lft between p_lft and p_rgt order by layer, lft;end;end if;END

查询B的所有子孙节点

call GetChildrenNodeList(2);

可以得到MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图四 B的所有子孙节点及相应的层可以计算其子孙节点,当让也可以计算其节点。创建获取所有父节点的存储过程GetParentNodePath

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetParentNodePath`(in p_node_id int)BEGINdeclare p_lft,p_rgt int default 0;if exists (select node_id from tree where node_id=p_node_id) thenbeginselect lft,rgt into p_lft,p_rgt from tree where node_id=p_node_id;select * from Tree_View where lft<p_lft and rgt>p_rgt order by layer,lft asc;end;end if;END

以E节点为例:

call GetParentNodePath(5);

可以得到MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图五 E的所有父节点2)在某个节点下插入一个子节点。仔细观察图一,我们以在H下添加一个节点K为例。K节点的左值为H节点的右值,K节点的右值为其左值+1,其他所有右值大于等于K的左值的节点的右值须+2,所有左值大于等于K的左值的节点的左值须+2。图示如下:MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图六 新增节点我们将其定义为存储过程:添加节点的存储过程AddSubNode

CREATE DEFINER=`root`@`localhost` PROCEDURE `AddSubNode`(in p_node_id int,in p_node_name varchar(50))BEGINdeclare p_rgt int default 0;if exists(select node_id from tree where node_id=p_node_id) thenbeginSET AUTOCOMMIT=0;START TRANSACTION;select rgt into p_rgt from tree where node_id=p_node_id;update tree set rgt=rgt+2 where rgt>=p_rgt;update tree set lft=lft+2 where lft>=p_rgt;insert into tree(name,lft,rgt) values(p_node_name,p_rgt,p_rgt+1);COMMIT;end;end if;END

调用AddSubNode存储过程

call AddSubNode(8,’K’);

MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图七 K节点成功插入3)删除节点删除节点是新增节点的逆向过程。创建删除节点存储过程DelNode

CREATE DEFINER=`root`@`localhost` PROCEDURE `DelNode`(in p_node_id int)BEGINdeclare p_lft,p_rgt int default 0;if exists(select p_node_id from tree where node_id =p_node_id) thenSTART TRANSACTION;select lft,rgt into p_lft,p_rgt from tree where node_id=p_node_id;delete from tree where lft>=p_lft and rgt<=p_rgt;update tree set lft=lft-(p_rgt – p_lft + 1) where lft > p_lft;update tree set rgt=rgt-(p_rgt – p_lft + 1) where rgt > p_rgt;COMMIT;end if;END

以删除C节点为例

call DelNode(3);

再次查询tree结果为:MySQL基于左右值编码的树形数据库表结构设计<img src="data:image/jpeg;base64,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" alt="" />图八 C及其所有的子节点都被删除到此我们已将基于左右值编码的树形数据库表结构设计的基本原理介绍完了。当然,对于节点的操作还远不止这些,感兴趣的朋友可以自己动手实现。诚然,这个方案也有其不足之处:节点的添加、删除及修改代价较大,将会涉及到表中多方面数据的改动。但是,在消除了递归操作的前提下实现了无限分组,而且查询条件是基于整形数字的比较,效率很高。所以,该方案比较实用与查询较多,变更不大的场景。 

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,027
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857