CloudKit修改了由用户过滤的记录?

时间:2015-02-09 18:11:43

标签: ios swift icloud cloudkit

我正在为存储在CloudKit中的记录创建一个投票系统。 每条记录都存储有一个投票数。我希望每个用户只能对每条记录进行一次投票。

有没有办法查询某个给定用户修改的给定类型的所有记录?

如果不能对此问题提出任何明智的建议吗?

我希望避免在用户记录中存储记录的id,因为当用户投票活动和记录总数上升时,记录的ID会很差。

1 个答案:

答案 0 :(得分:0)

一种选择是将CKReferences数组存储为每条记录的属性,CKReferences指向用户。然后,您可以使用类似“user IN votingUserReferences”的谓词进行查询。不知道这会如何扩大。

另一种选择,可能更好,是具有投票记录类型,具有对用户的引用,以及对记录的引用。如果您将这些投票记录的记录ID构造为用户ID和记录ID的串联,您应该能够非常快速地获取给定用户和记录的投票。

为此投票设置记录ID的另一个好处是,如果您在用户已经对该记录进行投票时尝试创建新投票,则会出现错误,因为记录ID必须是唯一的。