2012-09-17 48 views
0

我有一个应用程序,用户选择一组选项,但每个步骤中可用的选项取决于选择的以前的选项。选择的途径可以模拟成一棵树,然而,选择一个选项后,可用的选项会比选择不同的可用选择的选项B.后它可能是这个样子:CoreData模型选项选择树

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

我的生硬道歉这个模型;我没有时间去扩大规模。

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

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

回答

1

听起来像你可能想要一个实体代表一个决定,与自己和产品实体有多对多的关系。喜欢的东西:

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

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

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