エンティティAのインスタンスが他のインスタンスにどの程度強く関連付けられているか、またはエンティティAがグラフ内にあるかをランク付けしたいと思います。 私は、エンティティAの2つのインスタンス間の関係を別のエンティティBによって記述します。これは、それぞれの関係を記述する必要があるためです。オブジェクト間の接続を評価するためにコアデータを取得するプロパティ
することは、私はそうのようにフェッチされたプロパティを使用して検討していた:
ANY isSourceOfRelation.destinationThing == "$SOURCE_THING"
OR ANY isDestinationOfRelation.sourceThing == "$SOURCE_THING"
しかし、私はそれが関係を経由して網羅的検索を経由して、これを評価しないだろうので、私はそうすることを警戒しています。これはデスクトップ上ではあまり問題にならないだろうが、iPhoneでは自分のデータセットでは実用的ではないだろう。
フェッチされたプロパティは遅延評価され、その後キャッシュされますが、おそらくデスクトップ上のすべての単一オブジェクトのフェッチされたプロパティにアクセスできますが、このキャッシュはsqliteストアで管理されますか?
これに代わる方法として、すべてのエンティティBにアクセスして宛先エンティティAを取得し、その後これらを辞書に追加することでこれを動的に評価することができます。
グラフには10,000のエンティティAと約30,000の関係(エンティティB)があります。
私の優先度は、パフォーマンスです。
あなたはどう思いますか?