Я написал свою локальную модель данных с использованием Core Data. Это объектно-ориентированный, так что у меня есть что-то подобное в моей модели Core Data:Схема схемы 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, я понимая, если я хочу, чтобы получить «пару» и все его данные, и я делаю " Person "и" Address "CKReference
, тогда мне нужно будет получить« Лицо »и« Адрес », что является двумя дополнительными сетевыми вызовами и множеством логических функций для асинхронного обработки их результатов. Поэтому я подумывал об «денормализации» этих данных и помещал их в «пару» CKRecord
в схему CloudKit, без каких-либо 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?