【发布时间】:2011-08-25 17:24:22
【问题描述】:
我将分层数据存储在从 SQLite DB 填充的树视图中。根据用户的操作,树节点的 id 可以改变(如果他们在节点 001 之前添加一个新节点,那么从 001 到末尾的所有节点的键都会增加 1)。
这在更新数据库时很麻烦 - 因为更新 001 的值可能会更新错误的节点 - 因为一个已添加到树中。
我找到了解决此问题的方法,但对我来说似乎很愚蠢。我只是在更新之前清除表,删除所有记录,然后重新添加它们。但这似乎很糟糕,因为如果添加它们的某个地方出现错误,则不会添加所有剩余的项目。
我能想到的唯一其他解决方法是在向树中添加节点时,我可以给新节点一个键 00x(其中 x 是树中的节点数)。但这意味着键是乱序的。
最好的方法是什么?可能不是我现在的样子。
【问题讨论】:
-
不知道有多烂,没看到代码。
-
@Vache:这段代码是自然语言:)
-
在数据库中有一个主键。不要让它改变 - 如果需要,在树中使用单独的列来进行 id/ordering。