求解数据库表的递归查询问题
一张区域表结构如下:
RegionId int identity not null, --流水号主键
Depth int,--深度
ParentId int, --父节点
RegionName varchar(50) --区域名
这张表的数据大概描述如下:根节点深度为1,“中华人民共和国”;下面包含“东北地区”,“华北沿海地区”,“黄河中游地区”,“华东沿海地区”,“华南沿海地区”等子节点,其深度为2;华北沿海地区下面包含“北京”、“天津”等,深度为3;北京下面有“东城区”,“西城区”,“崇文区”等,深度为4。
请问我要根据任何一条给定记录的主键,获取其下面所有子节点,这样的存储过程怎么写?另外,考虑到这样的查询可能对性能会有影响,请问大家在碰到类似问题的时候是怎么解决的,表的结构设计有没有其他更好的方法?
谢谢
|