CloudKit修改了用户过滤的记录?
Posted
技术标签:
【中文标题】CloudKit修改了用户过滤的记录?【英文标题】:CloudKit modified records filtered by user? 【发布时间】:2015-02-09 18:11:43 【问题描述】:我正在为存储在 CloudKit 中的记录创建一个投票系统。 每条记录都存储有总票数。我希望每个用户只能对每条记录投票一次。
有没有办法查询给定类型的所有未被给定用户修改的记录?
如果这不可能,有什么聪明的建议可以解决这个问题吗?
我想避免在用户记录上存储记录的 id,因为随着用户投票活动和记录总数的增加,这会导致缩放不良。
【问题讨论】:
【参考方案1】:一种选择是将 CKReferences 数组存储为每条记录的属性,CKReferences 指向用户。然后,您可以使用诸如“user IN voteUserReferences”之类的谓词进行查询。不过不确定如何扩展。
另一个可能更好的选择是有一个投票记录类型,它包含对用户的引用和对记录的引用。如果您将这些投票记录的记录 ID 构建为用户 ID 和记录 ID 的串联,您应该能够非常快速地获取给定用户和记录的投票。
以这种方式为 Vote 设置记录 ID 的另一个优点是,如果您在用户已经对该记录投票时尝试创建新的投票,您将收到错误,因为记录 ID 必须是唯一的。
【讨论】:
以上是关于CloudKit修改了用户过滤的记录?的主要内容,如果未能解决你的问题,请参考以下文章
修改 CKRecords 时出现 CloudKit 错误:“Zone Busy”