搜索具有层次结构的DBM
-
10-10-2019 - |
题
现有RDBMS上是否有任何开源分层数据库或仿真?
我正在搜索一个DMB(或插件到现有RDBMS),该DMB可以存储层次数据并允许在层次数据上执行查询(例如“选择级别...连接...”,“选择parent ...”例如)。我知道Oracle有一些支持,但是有更复杂的解决方案吗?
解决方案
没有标准化的插件来执行此操作。我看上去不止一次。但是,有许多选项。从我先前关于同一主题的问题中查看:
简而言之,如果您使用的是带有ID和parentID的表(又称邻接列表),则使用大多数数据库(通过是最值得注意的例外之一)使用的通用表表达式(Oracle's Connect)。 oto,诸如实体路径或嵌套集合之类的东西可能更适合您的情况 - 例如,可以轻松找到具有邻接列表的“谱系”的能力,这是一个昂贵的操作。
通常,最终发生的系统需要与层次数据(例如CMS)进行广泛合作的系统,因为它实现了这些解决方案之一。该假设的读取大量写入。
其他提示
您是否尝试过Nest Set模型 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
关系数据不能直接以XML固有的层次结构的方式来支持层次结构。您必须使用嵌套集或直接自加入等数据模型来建模层次结构。
取决于您拥有的系统类型 通用表表达式 将让您在数据上运行分层查询。自2005年以来,SQL Server版本支持CTE,最新版本的DB/2和PostgreSQL - 以及可能其他一些系统。 CTE比Connect的cts稍微贴上了一些,但它们确实在各种各样的拼盘上运行。
不隶属于 StackOverflow