sqlite ベースのコア データ ストレージには、アイテムとタグの 2 つのエンティティがあります。
アイテムはタグと多対多の関係にあります。タグには、1 つの親タグに対する再帰的な関係もあります。したがって、タグはツリーを形成します。
ここで、条件タグのリストにすべてのタグを持つすべてのアイテムを取得する NSPredicate を作成したいと考えています。
問題は、アイテムに基準リストのタグがなく、タグ ツリーの基準タグの下にあるタグがある場合にも基準を満たす必要があることです。
基準リストを拡張して、すべての子孫を含めることができます。しかし、これはツリーが大きいため、リストが膨大なサイズに爆発します。
理論上の解決策の 1 つは、「parent.ancestors と自己結合する」タグ「ancestors」の Fetched Property です。しかし、私はこれを定式化する方法がわかりません。そして、フェッチされたプロパティでリレーションシップをトラバースすることはできないと思いますよね?
パフォーマンス上の理由から、すべてのアイテムをフェッチしてプログラムでフィルタリングすることは避けたいと思います。
何か案は?
ありがとう、マルコ