专栏名称: 程序猿阿三
知识的传播者和搬运工,计算机技术学习与传播,社会现象思考和分享
目录
相关文章推荐
今天看啥  ›  专栏  ›  程序猿阿三

实战篇| 当关系型数据库遇到树

程序猿阿三  · 公众号  ·  · 2024-08-16 20:19
    

主要观点总结

本文探讨了关系型数据库如何存储树形结构数据的设计模式,介绍了常见的数据库设计如邻接表、路径表、左右值编码和闭包表等,并提供了高阶解决方案,如使用JSON、XML存储和PostgreSQL的ltree数据结构。

关键观点总结

关键观点1: 常见的数据库设计模式

包括邻接表、路径表、左右值编码和闭包表等,每种方案都有其优缺点和适用场景。

关键观点2: 高阶解决方案

如使用JSON、XML存储和PostgreSQL的ltree数据结构。这些方案具有可读性强的优点,但也存在一些局限性。

关键观点3: 总结

作者建议使用postgresql的ltree方式存储树形结构数据,并指出在其他数据库中也可以寻找类似的设计。对于经常变更的树形结构,可以考虑使用json、xml存储。


文章预览

点击蓝字 关注我们 不迷路 01 前言 最近在做亚马逊类目Top版跟卖的事情, 发现亚马逊的类目是一棵树,层级不是很固定, 每点击类目下转,会有新的类目展开。 这种层级结构我们在生活中非常常见,比如我们企业的通讯录、部门组织架构、电脑上的文件夹结构等等。只要有层级结构,我们一般都喜欢用树形方式展示。树形结构我们在数据结构课程中经常会遇到,在内存中我们一般是用以下方式表达树形结构(以二叉树为例): static class Node { Node rightNode; Node leftNode; String data; } 需要将树形结构存储在磁盘上,方便后续增删改读, 在实际的系统中,我们经常使用关系数据库比如mysql、sqlserver、postgresql、oracle等进行数据存储, 关系数据库数据一般都是扁平化的,跟树递归结构完全不一样。今天我们就一起探讨一下当关系型数据库遇到树 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览