それ自体と多対多の関係を持つ(反射的)エンティティパーソンを設定する必要があります。
したがって、各人はn人のサブ人を持つことができます。基本的には次のようになります。
Personにはpersonとsub_personの2つの関係がありますか?逆のルールはどのように機能しますか?
それ自体と多対多の関係を持つ(反射的)エンティティパーソンを設定する必要があります。
したがって、各人はn人のサブ人を持つことができます。基本的には次のようになります。
Personにはpersonとsub_personの2つの関係がありますか?逆のルールはどのように機能しますか?
要件を正しく理解している場合は、1つのエンティティPersonと2つの関係のみを定義する必要があります。
sub_persons
として-人から人への多くの関係、super_person
として-人から人への1つの関係、そして、これらを相互の逆の関係として定義します。
二重リンクリスト内のノードが他のノードと次および前の関係を持っているのと同じように、エンティティは確かにそれ自体に関連付けることができます。エンティティはクラスのようなものであることに注意してください。特定のオブジェクトではなく、一種のオブジェクトです。したがって、たとえば、PersonエンティティにはPersonとの友達関係がある場合があります。特定の人物には多くの友達がいて、そのすべてがPersonのインスタンスでもある場合があります。
このようにして、CoreData内のオブジェクトをそれ自体に関連付けることは間違いなく可能です。データモデルのテーブルグラフエディタで、Ctrlキーを押しながら、Personから線を引いて元に戻します。これにより、両端に矢印が付いた線が表示され、両方とも人を指しています。次に、リレーションシップ(parentPerson、subPersons)の名前を変更し、プロパティインスペクターでsubPersonsを多対多のリレーションシップにします。最終結果は次のようになります。
このスタイルのデータ管理は、複合パターンと呼ばれるデザインパターンに従います。