惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
月光博客
月光博客
S
Security Affairs
宝玉的分享
宝玉的分享
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
Cloudbric
Cloudbric
PCI Perspectives
PCI Perspectives
B
Blog RSS Feed
腾讯CDC
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
T
The Blog of Author Tim Ferriss
H
Help Net Security
Vercel News
Vercel News
W
WeLiveSecurity
U
Unit 42
S
SegmentFault 最新的问题
Microsoft Azure Blog
Microsoft Azure Blog
Google Online Security Blog
Google Online Security Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
S
Schneier on Security
The Register - Security
The Register - Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
博客园 - Franky
H
Hacker News: Front Page
WordPress大学
WordPress大学
I
Intezer
M
MIT News - Artificial intelligence
博客园 - 叶小钗
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Schneier on Security
Schneier on Security
P
Proofpoint News Feed
V
V2EX
Help Net Security
Help Net Security
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs

博客园 - InFuture

变成百万富翁的二十五种方法 今天终于测试解决了WCF传递大数据量的问题 关于工作流设计方面的一些经验总结 Telnet客户端 字符串表达式求值(转) silverlight DataGrid模板列的动态生成 关于事件处理的完整框架Event,delegate,event args,无图有真相。 最近准备整理一下手头资料,开发一个工作流和表单管理系统 今天装好了window 7 Silverlight 客户端如何访问WCF 如何让用户控件占满全部页面,silverlight用户控件开发问题 wpf 数据绑定有关讲解 ASP.NET 3.5 Extensions: Dynamic Data Web Site 要點整理(转载) 免费的微软OneCare防病毒软件 Visual Studio 2008 SP1: EntityDataSource Where Clause(转载) Visual Studio 2008 SP1: EntityDataSource for ASP.Net (转载) 今天装了VS2008 Sp1!真是非常激动!(VS2008 sp1下载地址) ASP.NET里的支架:Dynamic Data Support(转载) VS2008的黑色皮肤
关于树形结构父类查子类,子类查父类的方法
InFuture · 2011-06-20 · via 博客园 - InFuture

ID,Name, ParentID,Level,三个字段就可以描述树形结构了。其他业务信息可以额外添加。这四个是主要的。我看你的问题是想快速查询而已。

如果用Oracle,可以参考以下示例:

TB_ORGAN表定义:
ORG_ID       (节点ID)
ORG_NAME     (节点名称)
ORG_PARENTID (父节点ID)
ORG_LEVEL    (节点级别)

1.根据子类查其父类:

根据某个子节点的ID,选择其某个级别(例如Lev001)的父节点的SQL脚本:

SELECT ORG_NAME from TB_ORGAN WHERE ORG_LEVEL = 'Lev001' CONNECT BY ORG_ID = PRIOR ORG_PARENTID START WITH ORG_ID = '某个子节点的ID' AND ROWNUM = 1

2.根据父类查其子类:

SELECT ORG_ID, ORG_NAME, ORG_PARENTID from TB_ORGAN CONNECT BY ORG_PARENTID = PRIOR ORG_ID START WITH ORG_ID = '某个父节点ID'

上边这条语句,你也可以增加where条件,增加子节点级别,这样可以只查询某个级别的子节点。

好了,兄弟,这样的设计可以彻底解决树形结构的查询问题了吧。至于你想把Level如何定义,看你自己需求了,可以定义一些特征,这样加快查询速度。呵呵