首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在树架构中检索父级和子级

问在树架构中检索父级和子级
EN

Stack Overflow用户
提问于 2012-05-24 12:37:45
回答 1查看 390关注 0票数 2

我使用嵌套的set体系结构在数据库中建模了一个父-子关系。

每个孩子(树叶)都链接到一个包含开始日期的表上,但父母不是。

我希望能够取回在某一时间打开的所有叶子,如果父母的所有孩子都被打开的话,他们的父母也会这样做。

有这么快的事吗?我想象一些类似于提出子请求的东西,但这既不是漂亮的,也不是快速的;最好的方法是只在一个查询中完成它。

我可以将嵌套的set体系结构更改为另一个体系结构,以便更容易地构建此请求吗?

编辑:

我正在使用MySql,但如果这是实现我的目标所必需的,我可以更改到任何其他数据库。

这就是我的节点(父-子)表的样子:

代码语言:javascript
复制
id (int)
lft (int)
rgt (int)
root_id (int , self reference to the root id, used to generate multi-rooted tree)
level (int)

name (string)
description (string)
...

我的opening_dates表如下所示:

代码语言:javascript
复制
id (int)
node_id (int)
start (datetime)
end (datetime)
status (bool, 0 for an opened date, 1 for a close one)

我还补充说,我的父-子结构不会经常更改,这就是为什么我决定采用嵌套的set体系结构。我在这里的目标是在“选择查询”系统时尽可能快。

EN

回答 1

Stack Overflow用户

发布于 2012-05-24 13:59:30

据我所知,MySQL不支持分层查询。使用Oracle非常简单,但如果使用MySQL,则可能需要为此目的创建存储函数。试着读如何在MySQL中创建分层查询

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10737655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档