2012-09-17 46 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」節點導致三個決定。或者,它可能導致一種或多種產品或兩者的某種組合。