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

推荐订阅源

Google DeepMind News
Google DeepMind News
S
Secure Thoughts
Application and Cybersecurity Blog
Application and Cybersecurity Blog
AWS News Blog
AWS News Blog
GbyAI
GbyAI
腾讯CDC
WordPress大学
WordPress大学
V
V2EX
小众软件
小众软件
C
CXSECURITY Database RSS Feed - CXSecurity.com
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
H
Hacker News: Front Page
Scott Helme
Scott Helme
The Hacker News
The Hacker News
Schneier on Security
Schneier on Security
K
Kaspersky official blog
S
Security @ Cisco Blogs
N
News | PayPal Newsroom
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Threatpost
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Martin Fowler
Martin Fowler
P
Privacy International News Feed
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
O
OpenAI News
P
Proofpoint News Feed
J
Java Code Geeks
B
Blog RSS Feed
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Engineering at Meta
Engineering at Meta
AI
AI
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
G
GRAHAM CLULEY
A
Arctic Wolf
N
Netflix TechBlog - Medium
L
LINUX DO - 最新话题
爱范儿
爱范儿
博客园 - 聂微东

博客园 - 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如何定义,看你自己需求了,可以定义一些特征,这样加快查询速度。呵呵