数据库层级结构实现
来源:互联网 发布:淘宝假货申诉凭证制造 编辑:程序博客网 时间:2024/05/22 15:10
主要参考了,这两篇文章:
层次关系数据库表的设计,无线层次
在数据库中存储层级结构
总的来说主要就是两大类方法
(1)自关联外键引用
①原理
就是加一个属性是parent_id,用来存储父节点的id。
②实现
MYSQL
在进行所有子节点遍历的时候,可以通过查询一次parent_id = id的,找到所有直接子节点,然后再对子节点使用,如此往复。
Oracle
有对应的层级遍历的语句,STRAT WITH ... CONNECTED BY
③优缺点
优点:在进行标签扩展的时候很方便,同时也能实现无线层级。
缺点:在进行标签查询的时候,对于mysql来说,不仅复杂,而且效率低下。
(2)编码
用编码来区分不同的层级,有两种方式,
直接上图
方式1:
编码后,可以通过like进行查询
优点:①查询方便,②并且能够根据CODE字段长度,算出所处层级③同级之间还可以有顺序
缺点:①标签总数量有限制②标签层数受限制③采用like查询效率也并非很高。
方式2:
优点:①通过某节点查询子节点,方便且效率高。②层次深度节点数量几乎不受限制。③同一父节点的直接子节点有顺序。
缺点:①标号需要先将数据存入一棵树,采用改进的先序遍历实现标号。②后续插入新节点,需要修改很多节点的值。
1 0
- 数据库层级结构实现
- jQuery实现层级展开结构
- ListView 实现树形层级结构
- [数据库]数据库存储层级结构数据
- 在数据库中存储层级结构
- oracle层级数据库结构通过一级找最末级数据
- Computer Graphics Project3(OpenGL实现机器人走动及层级结构)
- DOM文档层级结构
- 存储器的层级结构
- iOS层级结构
- 目录的层级结构
- 程序员的层级结构
- fhs文件系统层级结构
- 【层级结构】Ext.js5应用层级结构介绍
- 数据库分库分表实现结构
- 树结构的层级遍历
- HttpParams 的层级结构作用
- android View的层级结构
- 堆和栈的区别
- Android MTK keyguard横屏状态锁屏崩溃报错
- LeetCode 336. Palindrome Pairs
- 遗传算法入门(连载之十)
- Android 的volley请求
- 数据库层级结构实现
- BZOJ 2326: [HNOI2011]数学作业
- UINavgationController
- 【转】使用CSDN-markdown编辑器入门
- C# 中的委托和事件
- javascript-3.数组(1)
- CF 626 B. Cards
- 大数据中的隐藏偏差
- JS DOM编程艺术学习笔记(二)