0

我已经围绕 sqlite 数据库构建了一个 iOS 应用程序。其中一个表分配了一个向下钻取表值,它们在表中显示的顺序,然后是随后的菜单。我想是一棵基本的树。

我构建它的方式,我能想到的唯一方式(这是我第一次接触 sqlite).. 这只是一个真正的痛苦,因为它几乎不可能修改。

如果我必须重组菜单并添加或删除其中一个菜单,那么修改后的所有内容都必须调整其父级以进行补偿。

有人用我没想到的东西打我的头,因为我确信这很明显。

结构表示:

id   menu          icon          level   parent  
===========================================================  
1    colors        color.jpg     1       NULL
-----------------------------------------------------------
2    shapes        shapes.jpg    1       NULL
-----------------------------------------------------------
3    red           red.jpg       2       1 
-----------------------------------------------------------
4    green         green.jpg     2       1  
-----------------------------------------------------------
5    square        square.jpg    2       2  
-----------------------------------------------------------
6    roses         roses.jpg     3       3
-----------------------------------------------------------
7    grass         grass.jpg     3       4

因此,如果我决定在 1 级添加一个新菜单,我必须要么忍受一个非常混乱的数据库,要么在插入后修改每个条目的所有父值和 id。

4

1 回答 1

1

您想要使用表做的事情并不容易(请参阅在关系数据库中存储树结构的最佳方法是什么?)。

将菜单结构存储在单个递归组织的 JSON 或 XML 对象中可能会更好。

于 2013-04-13T08:54:39.423 回答