2011-10-25 17 views
3

Xcode 4.2で円形のコアデータ多対多関係をモデル化する方法を理解しようとしました。 SQLでは、マッピングテーブルを使用してSQL式をカスタマイズして正しいデータを提供していましたが、コアデータでは、彼を適切に動作させる方法を理解できないようです。 私はすべて相互に関連している3つのエンティティ持っている:私のリンクがある CoreData:循環多対多関係をモデル化する方法

  • 部門
  • 役割
  • を:

    • 部門が複数の役割を持つことができます
    • 部署に複数の人物を割り当てることができます
    • 役割が存在することができる多くの部門
    • での役割は人が人が多くの役割

    の一部にすることができ、複数の部署

  • に属することができ
  • それに割り当てられた多くの人を持つことができますコアデータを使ってこれをモデル化する最良の方法と、それらの間の関係が最も適切なエンタテイメントは何ですか?これらの3つの間にマッピングテーブルを使用するか、正しい関係を割り当てるだけですか?私はこれを理解するように見えることはできませんとしてすべてのヘルプは高く評価されるだろう

    ....

    EDIT

    : は、高速フィードバックありがとうございました。 残念ながら私はこのサイトを初めて利用しているため、画像をアップロードすることはできません。私は現在、これだけのような述語を使用していたデータの読み取りするには

    predicate = [NSPredicate predicateWithFormat:@"personPartOfRoles == %@", myRole]; 
    

    私が把握するように見えることはできませんどのような役割から人物を追加または削除するには、このオブジェクトグラフを維持する方法です。私は、グラフ全体をメモリにロードし、何らかの形で正しいエンティティだけを見つける必要があると仮定しました。

答えて

3

エンティティで正しい関係を割り当ててください。

コアデータを使用する場合は、SQLiteに格納するという事実を無視することが重要です。ストレージは、あなたが忘れることのできるシーン実装の詳細の背後にあります(coredataはXMLまたはメモリに格納することができます)。

+0

非常に速いコメントをいただきありがとうございます。私は上記の投稿を更新しました。私は、多対多の関係があるときに関係をモデル化する方法についてまだよく分かりません。 –

+0

AppleのCore Dataガイドには、多対多の関係について具体的に説明するセクションがあり、実際にエンティティのようなテーブルを結合するのが適切かもしれないケースについて実際に話しています。あなたがまだそれを読んでいないなら、私は非常にそれを提案します。 – sosborn

3

部門< < --- >>役割(部門の役割)
部門< < --- >>人(人に部門)
役割< < - >>人(人に役割)

各リレーションを逆にします。

コアデータはオブジェクトグラフであることを覚えておいてください。はデータベースに保存されています。それをオブジェクトグラフのように扱います。