处理CloudKit中的多对多关系

问题描述 投票:5回答:1

我正在尝试使用CloudKit创建标记系统。我有一个名为Article的类型和一个名为Tag的标签类型。每篇文章都可以应用多个标签。我希望我的数据能够正常化,因为相同的标签可以出现在几篇文章中,文章可以有多个标签,我需要一个多对多的关系。在旧式的DB-stuff中,这需要一个联结表。

你是如何在CloudKit中做到的?

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

所以我创建了一个名为Article Tag的联结表类型,它由两个引用组成。一个用于文章参考,一个用于标记参考。

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

亲切的问候,埃斯本

ios many-to-many cloudkit
1个回答
5
投票

目前没有任何机制可以像传统的关系数据库那样在CloudKit中“加入”查询,但是您应该能够通过在文章中使用“参考列表”类型的字段来完成您想要的任务。我们假设如下:

  1. 您的文章记录类型具有参考列表类型的“标签”字段。你可以在CloudKit Dashboard中设置它。
  2. 您有一个Tag记录类型
  3. 标记文章时,首先查找(并可能创建)每个标记的标记记录,然后使用每个标记记录ID将CKReference添加到Article.tags列表字段。

然后,您可以使用标记字段中的ID查找文章的标记,并且可以使用标记记录ID和使用CONTAINS操作检查列表成员身份的CKQuery谓词来查找标记有特定标记的所有文章。

© www.soinside.com 2019 - 2024. All rights reserved.