在基于 sqlite 的核心数据存储中,我有 2 个实体:Item 和 Tag。
Item 与 Tag 有多对多的关系。标记还具有一个父标记的递归关系。因此标签形成一棵树。
现在我想创建一个 NSPredicate 来获取在标准标签列表中具有所有标签的所有项目。
现在的问题是,如果该项目没有标准列表的标签,而是标签树中低于标准标签的标签,则也应该满足标准。
我可以扩展标准列表以包括所有后代。但这会使列表爆炸成巨大的树,因为树很大。
一种理论上的解决方案是标签“祖先”中的获取属性,它是“与 parent.ancestors 自我连接的”。但我不知道如何制定这个。而且我什至认为不可能遍历 Fetched Properties 中的关系,对吧?
出于性能原因,我想避免以编程方式获取所有项目和过滤。
有任何想法吗?
谢谢,马可