我正在尝试使用CloudKit创建标记系统。
我有一个名为Article的类型和一个名为Tag的标签类型。
每篇文章可以应用多个标签。我希望对我的数据进行规范化处理,以使相同的标签可以出现在多篇文章上,并且文章可以具有多个标签,因此我需要一个多对多关系。
在老式的DB-stuff中,这将需要一个联结表。
您如何在CloudKit中做到这一点?
在任何Apple文档中,我只能找到一对多关系的示例。
因此,我创建了一个称为ArticleTag的联接表类型,该类型由两个CKReferences组成。一种用于“文章”引用,另一种用于“Tag”引用。
这应该可行,但是查询每篇文章标签的最佳方法是什么?
亲切的问候,
埃斯本
最佳答案
当前没有像传统的关系数据库那样在CloudKit中执行“联接”查询的任何机制,但是您应该能够通过在Articles中使用类型为“Reference List”的字段来完成所需的操作。让我们假设以下内容:
然后,您可以使用标签字段中的ID查找文章的标签,并可以通过使用标签记录ID和使用CONTAINS操作检查列表成员身份的CKQuery谓词来查找所有已标记了特定标签的文章。
关于ios - 处理CloudKit中的多对多关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31277454/