我有分層數據存儲在一個樹形視圖,從SQLite數據庫填充。根據用戶的操作,樹節點的id可以改變(如果他們在節點001之前添加一個新節點,那麼從001到結尾的所有節點的密鑰都會增加1)。在SQLite表中更改鍵的最佳方法是什麼?
這在更新數據庫時證明令人不安 - 因爲更新001的值可能會更新錯誤的節點 - 因爲已將一個節點添加到樹中。
我找到了解決這個問題的方法,但對我來說似乎很笨拙。我只是在更新之前清除表格,刪除所有記錄,然後重新添加它們。但是這看起來很糟糕,因爲如果在添加它們的地方存在一個錯誤,所有剩餘的項目將不會被添加。
我能想到的唯一的其他解決方法是向樹添加節點時,我可以給新節點一個鍵00x(其中x是樹中節點的數量)。但那意味着鑰匙失靈。
這樣做的最好方法是什麼?可能不是我現在擁有的方式。
我不知道它有多糟糕,我沒有看到代碼。 – Vache
@Vache:這段代碼是自然語言:) – Jan
在數據庫中有一個主鍵。不要讓它改變 - 如果需要的話,在樹中使用單獨的列進行id /排序。 – driis