核心数据模型选项选择树

时间:2012-09-17 18:28:23

标签: ios core-data data-modeling

我有一个应用程序,其中用户选择一组选项,但每个步骤中可用的选项取决于所选的先前选项。选择的路径可以建模为树,但是,选择选项A后可用的选项与选择选项B后可用的选项不同。它可能如下所示:

                       Option 1
                      /   |    \
                     /    |     \
                    /     |      \
                A,B,C    D,E      F,G,H
               /  |  \   / \      / |
              I  J,K  L  M  N,O  P  Q

我为这种模式的粗暴道歉;我没有时间按比例建造它。

基本上,将向用户呈现一组初始选项。这些选项中的每一个都可以有一组子选项,与选择其他兄弟选项之一相比,它们是唯一的。在选择结束时,他们将拥有一个Product对象。

我正在寻找有关如何在CoreData中建模这种层次结构的建议。我认为叶子节点应该是一个Product对象,并且中间选项应该只是常规的NSManagedObjects,并且可以选择一个子选项列表。

1 个答案:

答案 0 :(得分:1)

听起来您可能希望实体代表决策,与自身和产品实体建立多对多的关系。类似的东西:

entity: Decision
    relationship: decisions ->> Decision
    relationship: product ->> Product

entity: Product
    attribute: name
    attribute: price
    attribute: color
    ...

这样,一个决策可以导致一个或多个其他决策,就像您的“选项1”节点导致另外三个决策一样。或者,它可以导致一个或多个产品,或两者的某种组合。