我需要在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