我正在为存储在CloudKit中的记录创建一个投票系统。 每条记录都存储有一个投票数。我希望每个用户只能对每条记录进行一次投票。
有没有办法查询某个给定用户未修改的给定类型的所有记录?
如果不能对此问题提出任何明智的建议吗?
我希望避免在用户记录中存储记录的id,因为当用户投票活动和记录总数上升时,记录的ID会很差。
答案 0 :(得分:0)
一种选择是将CKReferences数组存储为每条记录的属性,CKReferences指向用户。然后,您可以使用类似“user IN votingUserReferences”的谓词进行查询。不知道这会如何扩大。
另一种选择,可能更好,是具有投票记录类型,具有对用户的引用,以及对记录的引用。如果您将这些投票记录的记录ID构造为用户ID和记录ID的串联,您应该能够非常快速地获取给定用户和记录的投票。
为此投票设置记录ID的另一个好处是,如果您在用户已经对该记录进行投票时尝试创建新投票,则会出现错误,因为记录ID必须是唯一的。