2015-02-09 81 views
0

我爲我在CloudKit中存儲的記錄創建了投票系統。 每條記錄​​都存儲在一張票數中。我希望每個用戶只能對每個記錄進行一次投票。用戶過濾CloudKit修改的記錄?

有沒有辦法查詢給定用戶修改了給定類型的所有記錄而不是

如果這是不可能的這個問題的任何聰明的建議?

我想避免在用戶記錄中存儲記錄的id,因爲當用戶投票活動和記錄總數增加時,縮放比例會很差。

回答

0

一種選擇是將CKReferences數組作爲每條記錄的屬性,CKReferences指向用戶。然後,您可以使用謂詞「user IN votingUserReferences」進行查詢。不知道這將如何擴展。

另一種可能更好的選擇是擁有一個Vote記錄類型,它具有對用戶的引用以及對記錄的引用。如果您將這些投票記錄的記錄ID構造爲用戶ID和記錄ID的串聯,那麼您應該能夠快速獲取給定用戶和記錄的投票。

以這種方式設置Vote的記錄ID的另一個優點是,如果您嘗試在用戶已經對該記錄進行投票時創建新投票,則會出現錯誤,因爲記錄ID必須是唯一的。