我有一个带有TreeViewAdv的GUI和一个ListBox中的一些数据,可以将它们拖放到树中的节点上以创建层次结构。用户还可以定义新节点。树在内存中操作,但可以由用户提交到后端。每个节点都保存为与其他对象有关系的对象。
问题是当用户拖放新节点时,如何在树上运行一致性检查有一些好主意。一致性检查如下:它之前是否已添加到另一个节点。
我想到了一些需要涵盖以前操作(保存在数据库中)和当前操作的选项:
1)在内存中运行它,遗憾的是为了完整概述这将意味着至少扩展/折叠整个树一次以初始化节点,但是在初始化一些节点时也会进行一些较小的数据库往返
2)使用当前初始化的GUI节点,并在保存所有先前的关系时对数据库进行检查,但这会在数据库往返中产生更大的开销。
3)在GUI初始化期间读入当前数据库配置并缓存运行一致性检查所需的内容。然后使用它和当前树。这应该会带来更好的用户体验。
还有其他想法吗?
谢谢。