我有一个应用程序,其中用户选择一组选项,但每个步骤中可用的选项取决于所选的先前选项。选择的路径可以建模为树,但是,选择选项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,并且可以选择一个子选项列表。
答案 0 :(得分:1)
听起来您可能希望实体代表决策,与自身和产品实体建立多对多的关系。类似的东西:
entity: Decision relationship: decisions ->> Decision relationship: product ->> Product entity: Product attribute: name attribute: price attribute: color ...
这样,一个决策可以导致一个或多个其他决策,就像您的“选项1”节点导致另外三个决策一样。或者,它可以导致一个或多个产品,或两者的某种组合。