如何在oracle

时间:2018-08-30 07:26:26

标签: oracle data-structures graph tree hierarchy

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

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

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

enter image description here

因此,我需要有关如何解决该问题的建议,或者在有解决方案时指出明显的解决方案。

1 个答案:

答案 0 :(得分: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
...