2011-12-22 11 views
5

coreDataモデルの設計には苦労しています。「To-Do」という1つのタイプのエントリしかありません。各To-Do項目には、To-Doのような他の(サブ)項目との0,1,2、...またはnの関係があります。したがって、To-Doエントリ間の関係は、未定義の数の子ノードを持つツリー構造を設計します。以下の図は、ケース(E =コアデータエントリ)を示すべきである:コアデータ:1つのコアデータエントリからツリーデータ構造を設計する方法

  E        
      /|\       
     /| \      
     E E E      
     /\    
    / \   
     E  E    
    /|\     
    E E E   

私の推測のようなデータを以下のグラフに示されていることをモデル化することでした。 Xcodeはツリーのデザインと一致しない多対多の関係を作成したため、逆の関係は選択しませんでした。

enter image description here

また、私は、 "親エントリ" と呼ばれるdata model inspector何かで見ました。そこで、私は、同じ属性を持つ「To-Do-Child」という名前の2番目のエントリを作成し、その別のエントリを親エントリにする必要があるかもしれないと考え始めました。

  1. どのように私はコアデータモデルファイルの中に、このアプローチをモデル化することができます。マニュアルでは、これは...

    質問を行くために間違ったパスかもしれないと言われますか?記載されているものの1つが正しいですか?

  2. 指定した親ノードのすべてのTo-Doエントリを取得する方法を教えてください。同じエントリから発生するので、私が望む正確なTo-Doサブツリーに対処するのに問題があります。

+0

この質問へのリンクは、受け入れられた回答よりも少し便利です。http://stackoverflow.com/questions/16633907/model-a-tree-structure-in-core-data –

答えて

3

私はあなたが逆の関係の宛先として機能しますparentの関係を(先のエンティティがエンティティを行うためである)必要があると思います。

ツリーの先頭のエントリには、この関係のためのnil値があります。

どのTo-doアイテムでも、childToDos関係から返されたセットはすべての子を保持します。これらは同じクラスのものではありません。

+0

Aha、素敵なアイデア。しかし、それはなぜ私の頭には、親と呼ばれる第二の関係を定義しないようになった。新しい属性を持たなくても、そのトリックもやっていないでしょうか?自己の関係を持つ最初のアプローチは適切なアプローチでしょうか? –

+0

正直、それは私が言ったことです、ごめんなさい。私は答えを更新しました。 – jrturton

関連する問題