我已經使用核心數據編寫了本地數據模型。它是面向對象的,所以我有這樣的事情在我的核心數據模型:CloudKit架構設計
class Pair {
var uuid: NSUUID
var me: Person
var friend: Person
}
class Person {
var name: String
var birthday: NSDate
var address: Address
}
class Address {
var streetNumber: Int16
var streetName: String
var zip: Int16
}
現在CloudKit,我意識到,如果我要得到一個「對」和它的所有數據,我做「人「和」地址「CKReference
然後我將不得不取得」人「和」地址「這是兩個額外的網絡調用和大量的邏輯異步處理他們的結果。所以我正在考慮將這些數據「反規格化」,並將其全部放入CloudKit架構中的「Pair」CKRecord
,而不需要任何CKReference
。
class CloudKitPair {
var uuid: NSUUID
var myName: String
var myBirthday: NSDate
var myStreetNumber: Int16
var myStreetName: String
var myZip: Int16
var friendName: String
var friendBirthday: NSDate
var friendStreetNumber: Int16
var friendStreetName: String
var friendZip: Int16
}
難道是合法的設計我CloudKit模式,這樣既避免額外的網絡獲取用於CKReferences電話:那麼沿着這行嗎?