使用拖放自定义树结构

时间:2012-09-12 12:07:41

标签: database database-design eclipse-rcp

我需要在Eclipse RCP中使用拖放选项创建一个树查看器,以便节点应该能够在任何父节点下重新排列。拖动节点后,节点的名称应根据树中删除的位置进行更改,并且应调整所有后续子节点以及剩余的树结构。但是节点(Req)中的结构应该保持不变。

我举出的例子是站在更好的地方,在这种情况下如果我拖动1.3(Req)并在1.1之前掉落,输出应该如图2所示

我需要在数据库中保留树结构。这样当我重新加载时,更改将保留。我的问题是什么可以是最好的数据库设计,可以有效地处理这些变化?

我的想法是 - 构建树查看器并编写一些方法来更新节点的名称和子节点的名称,并将所有节点保存到数据库中。 表可以是 - Requirements_Tree [Req_id(主键),Req_Name,Parent_id(外键引用Req_id)]

但问题在于,每次我需要将所有节点填充到数据库中,并且将所有节点从数据库再次填充到内存中,即使有很小的变化。

有没有更好的方法来完成这项任务?我是Eclipse RCP的新手

例如:

--1.0 (Head Node) 
   |
   |=>  1.1 (Req) 
          |
          == > 1.1.1 (Req)
          == > 1.1.2 (Req)
                |
                == > 1.1.2.1 (attrib 1)
                == > 1.1.2.2 (attrib 2)
   |
   |=>  1.2 (Req)
       |
       == > 1.2.1 
   |
   |=>  1.3 (Req)
        |
        == > 1.3.1 (Req)
            |
             == > 1.3.1.1 (attrib 1)

图1

   --1.0 (Head Node) 
    |
    |=>  1.1 (Req)
            |
            == > 1.1.1 (Req)
                 |
                  == > 1.1.1.1 (attrib 1)
    |=>  1.2 (Req)
         |
          == > 1.2.1 (Req)
          == > 1.2.2 (Req)
                   |
                   == > 1.2.2.1 (attrib 1)
                   == > 1.2.2.2 (attrib 2)
    |=>  1.3 (Req)   
           |
           == > 1.3.1 (Req)

图2

我已经通过以下链接...但是无法获得大部分内容。 Database Structure for Tree Data Structure

0 个答案:

没有答案