Derby数据库-确定层次结构中的级别以转换DB->;DefaultMutableTreeNodeJava对象

Derby数据库-确定层次结构中的级别以转换DB->;DefaultMutableTreeNodeJava对象,java,sql,hierarchy,derby,jtree,Java,Sql,Hierarchy,Derby,Jtree,我在德比有一张桌子: 创建表导入规则( RULEID整数不为空, PARENTID整数, 名称VARCHAR(25)不为空, 主键(规则ID) ) PARENTID是父级的RULEID,但父级/子级关系的深度未知 我的目标是创建一个表示分层数据的DefaultMutableTreeNode 我的想法是,最好的方法是使用SQL查询返回数据库中每个项目的“级别”,并从最低级别向后循环到最高级别 我的问题是,我似乎无法提出德比的问题 关于如何生成此查询或以其他方式实现目标,您有什么想法吗?我认为不会

我在德比有一张桌子:

创建表导入规则(
RULEID整数不为空,
PARENTID整数,
名称VARCHAR(25)不为空,
主键(规则ID)
)
PARENTID是父级的RULEID,但父级/子级关系的深度未知

我的目标是创建一个表示分层数据的
DefaultMutableTreeNode

我的想法是,最好的方法是使用SQL查询返回数据库中每个项目的“级别”,并从最低级别向后循环到最高级别

我的问题是,我似乎无法提出德比的问题


关于如何生成此查询或以其他方式实现目标,您有什么想法吗?

我认为不会有一个查询可以实现您的目标。如果有,一定是在我头上。就性能而言,最有效的方法是将“深度”保存在单独的表中。简单地说,您将树节点数据保存在IMPORT_RULES表中,并将每个节点的深度保存在一个单独的表中,比如IMPORT_RULE_LEVEL,它保存节点id和全局根节点的相关深度


<>但显然,如果在分支的中间插入一个新节点,有时可能需要批量更新。如果您的逻辑只需要附加子节点,那么一个单独的表将是一个不错的选择。

如果是一个可接受的替代方案,它支持。另请参见有关自定义树模型的内容。

这是一个非常有趣的可能性。您是否知道H2在嵌入时是否支持多个到同一数据库的连接?(这个可能性很小,但我想我会问的)。;还考虑添加标签。