主要观点总结
本文探讨了关系型数据库如何存储树形结构数据的设计模式,介绍了常见的数据库设计如邻接表、路径表、左右值编码和闭包表等,并提供了高阶解决方案,如使用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等进行数据存储, 关系数据库数据一般都是扁平化的,跟树递归结构完全不一样。今天我们就一起探讨一下当关系型数据库遇到树
………………………………