【问题标题】:CloudKit modified records filtered by user?CloudKit修改了用户过滤的记录?
【发布时间】:2015-02-09 18:11:43
【问题描述】:

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

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

如果这不可能,有什么聪明的建议可以解决这个问题吗?

我想避免在用户记录上存储记录的 id,因为随着用户投票活动和记录总数的增加,这会导致缩放不良。

【问题讨论】:

    标签: ios swift icloud cloudkit


    【解决方案1】:

    一种选择是将 CKReferences 数组存储为每条记录的属性,CKReferences 指向用户。然后,您可以使用诸如“user IN voteUserReferences”之类的谓词进行查询。不过不确定如何扩展。

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

    以这种方式为 Vote 设置记录 ID 的另一个优点是,如果您在用户已经对该记录投票时尝试创建新的投票,您将收到错误,因为记录 ID 必须是唯一的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2016-03-13
      相关资源
      最近更新 更多