Web中树形数据(层级关系数据)的实现—以行政区树为例

在Web开发中经常遇到树形数据的操作,如菜单、组织机构、行政区(省、市、县)等具有层级关系的数据。下面以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所示。1 数据库表结构设计树形数据一般通过父节点和子节点实现数据之间的层级关联,层级关系在数据库中主要通过主键和外键来实现。--使用Oracle数据库--创建行政区表create table
摘要由CSDN通过智能技术生成

在Web开发中经常遇到树形数据的操作,如菜单、组织机构、行政区(省、市、县)等具有层级关系的数据。下面以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所示。



1 数据库表结构设计


树形数据一般通过父节点和子节点实现数据之间的层级关联,层级关系在数据库中主要通过主键和外键来实现。

--使用Oracle数据库
--创建行政区表
create table TB_XZQ
(
  code         NUMBER not null,  --行政区编码,主键
  parent_code  NUMBER,           --上级行政区编码,如果没有上级行政区,则为空
  name         VARCHAR2(50)      --行政区名称  
);

--设置CODE为主键
alter table TB_XZQ add constraint PK_TB_XZQ primary key (CODE) using index;

--设置外键
alter table TB_XZQ
  add constraint FK_TB_XZQ_PARENT_CODE foreign key (PARENT_CODE)
  references TB_XZQ (CODE) on delete set null;

--插入行政区数据
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420000, NULL, '湖北省');

INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420100, 420000, '武汉市');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420101, 420100, '市辖区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420102, 420100, '江岸区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420103, 420100, '江汉区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420104, 420100, '硚口区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (420105, 420100, '汉阳区');

INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (421000, 420000, '荆州市');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (421001, 421000, '市辖区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (421002, 421000, '沙市区');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (421003, 421000, '荆州区');

INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (430000, NULL, '湖南省');

INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (430100, 430000, '长沙市');
INSERT INTO TB_XZQ (CODE,PARENT_CODE,NAME) VALUES (430101, 430100, '市辖区');
INSERT INT
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值