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

相关文章:

  • 2022-12-23
  • 2022-01-09
  • 2022-03-05
  • 2021-06-13
  • 2021-12-30
  • 2021-07-24
  • 2021-11-02
  • 2022-03-08
猜你喜欢
  • 2021-09-23
  • 2021-10-14
  • 2022-02-22
  • 2021-12-29
  • 2022-12-23
  • 2021-07-22
相关资源
相似解决方案