Oracle树形表和递归查询
地址: https://blog.csdn.net/hellowordapi/article/details/75763432 在平常的业务系统开发中,我们经常需要设计数据层次关系,如在经典的user-role-permission权限设计中, 需要对权限表的数据设计成一种层次依赖关系,如最顶层的为系统管理,系统管理的下一层为角色 管理,角色管理的下一层又为角色的CRUD操作, 那么这种表就可以抽象成为数据结构里面的B树. 如下表 : CREATE TABLE "U_PERMISSION" ( "ID" NUMBER(20,0), "URL" VARCHAR2(256 BYTE), "NAME" VARCHAR2(50 BYTE), "PARENT" NUMBER(20,0) ) 在上表中 id表示当前树的节点。url, name表示可访问的url路径,name表示url描述。 parent表示当前节点的父节点,如果当前节点是跟节点则parent用0表示(别用NULL违反了数据库约束)。 那么上面的表就可以抽象成如下图. 接着我们插入测试数据 : Insert into U_PERMISSION (ID,URL,NAME,PARENT) values (1,'*','系统管理',0); Insert into U_PERMISSION (ID,URL,NAME,PARENT)