Ios 在CloudKit中处理多对多关系

Ios 在CloudKit中处理多对多关系,ios,many-to-many,cloudkit,Ios,Many To Many,Cloudkit,我正在尝试使用CloudKit创建一个标签系统。 我有一个名为Article的类型和一个名为tag的标记类型。 每篇文章都可以应用多个标记。我希望我的数据是正常的,因为相同的标签可以出现在几个文章和文章可以有多个标签,我需要一个多对多的关系。 在老式的数据库中,这需要一个连接表 在CloudKit中您是如何做到这一点的 在苹果的任何文档中,我只能找到一对多关系的示例 因此,我创建了一个名为ArticleTag的连接表类型,它由两个引用组成。一个用于文章参考,一个用于标记参考 这应该是可行的,但是

我正在尝试使用CloudKit创建一个标签系统。 我有一个名为Article的类型和一个名为tag的标记类型。 每篇文章都可以应用多个标记。我希望我的数据是正常的,因为相同的标签可以出现在几个文章和文章可以有多个标签,我需要一个多对多的关系。 在老式的数据库中,这需要一个连接表

在CloudKit中您是如何做到这一点的

在苹果的任何文档中,我只能找到一对多关系的示例

因此,我创建了一个名为ArticleTag的连接表类型,它由两个引用组成。一个用于文章参考,一个用于标记参考

这应该是可行的,但是查询每篇文章的标签的最佳方法是什么

亲切问候,,
Esben

目前在CloudKit中没有任何机制可以像传统的关系数据库那样执行“连接”查询,但是您应该能够通过在文章中使用类型为“引用列表”的字段来完成所需的操作。让我们假设如下:

  • 您的文章记录类型具有类型参考列表的“标记”字段。您可以在中进行设置
  • 您有一个标记记录类型
  • 标记文章时,首先要查找(并可能创建)每个标记的标记记录,然后使用每个标记记录ID向Article.tags列表字段添加CKReference

  • 然后,您可以使用“标记”字段中的ID查找文章的标记,您可以使用标记记录ID和使用“包含”操作检查列表成员资格的谓词查找所有标记了特定标记的文章。

    经过思考后,这正是我最后要做的。在苹果的文档中,引用者不是很清楚。我仍然对CloudKit的糟糕工作方式感到震惊。调节起来又慢又麻烦。你可能认为数据库已经足够让苹果知道需要更先进的存储系统。