如何在oracle中构造层次化数据

如何在oracle中构造层次化数据,oracle,data-structures,graph,tree,hierarchy,Oracle,Data Structures,Graph,Tree,Hierarchy,我需要使用关系数据库(特别是oracle)存储分层数据。 到目前为止,我使用的唯一实现是邻接列表。然而,这一次我有一些拒绝使用这种结构的要求 要求是:(1)每个节点可以在不同的层次中使用,(2)将节点连接到不同层次的边可能具有不同的权重 此处给出了两个层次结构的示例: 因此,我需要一个关于如何解决该问题的建议,或者指出显而易见的解决方案(如果有的话)。创建如下关联表: CREATE TABLE ASSOC ( PARENT_ID NUMBER, CHILD_ID

我需要使用关系数据库(特别是oracle)存储分层数据。 到目前为止,我使用的唯一实现是邻接列表。然而,这一次我有一些拒绝使用这种结构的要求

要求是:(1)每个节点可以在不同的层次中使用,(2)将节点连接到不同层次的边可能具有不同的权重

此处给出了两个层次结构的示例:


因此,我需要一个关于如何解决该问题的建议,或者指出显而易见的解决方案(如果有的话)。

创建如下关联表:

CREATE TABLE ASSOC (
   PARENT_ID      NUMBER,
   CHILD_ID       NUMBER,
   WEIGHT         NUMBER,
   HIERARCHY_ID   VARCHAR2(100));  -- necessary do distinguish, which hierarchy connection belongs to
和数据

PARENT_ID   CHILD_ID  WEIGHT  HIERARCHY_ID
----------+---------+-------+-------------
1         | 2       | 50    | A 
1         | 5       | 50    | A 
2         | 3       | 70    | A 
2         | 4       | 30    | A 
10        | 2       | 65    | B
10        | 5       | 35    | B
...

创建如下关联表:

CREATE TABLE ASSOC (
   PARENT_ID      NUMBER,
   CHILD_ID       NUMBER,
   WEIGHT         NUMBER,
   HIERARCHY_ID   VARCHAR2(100));  -- necessary do distinguish, which hierarchy connection belongs to
和数据

PARENT_ID   CHILD_ID  WEIGHT  HIERARCHY_ID
----------+---------+-------+-------------
1         | 2       | 50    | A 
1         | 5       | 50    | A 
2         | 3       | 70    | A 
2         | 4       | 30    | A 
10        | 2       | 65    | B
10        | 5       | 35    | B
...