Cloudkit 继承策略

Cloudkit strategy with inheritance

我的数据模型正在使用 Core Data 的继承,我可以想到 3 种策略来将这些数据存储到 CloudKit 记录中。

模型中有一个抽象 class 元素和两个子class 元素:A 和 B


CloudKit 策略 1:创建记录类型 A 和记录类型 B。每个记录类型都包含基本 class 及其关联子类型

的参数

CloudKit 策略 2:创建记录类型元素。 Element包含Element、A、B的所有参数,加上一个字符串,表示该记录实际上是Type A还是Type B

CloudKit策略3:创建记录类型元素、记录类型A和记录类型B。每个包含与模型相同的参数。 Record Type A 和 Record Type B 也有一个额外的 Reference parameter to the parent Element


我认为策略 2 是最容易实施的,但在云中需要更多 space。我是否应该担心 space 的浪费,只有当我的应用程序真正起飞并且只专注于维护一个简单的 CloudKit 模型时?

策略 3 是否矫枉过正?

如果我使用策略 1,在多个记录类型中多次复制所有字段似乎有点蹩脚。但这是通常的做法吗?

这可能取决于数据模型的实际大小。数据库中需要云化的部分大约有10张表。

哪个是最好的策略?

我可能会选择策略 1,在您的应用中每个具体 class 一个记录类型,但是如果您的类型 A 和 B 几乎相同,您可以使用策略 2。

如果将来您向类型 B 添加更多字段,根据策略 2,您必须将这些字段添加到您为 类型 B 或 A[=19= 的对象创建的每条记录中], 这对我来说不太正确。

就代码复杂性而言,我怀疑使用策略 1 会比使用策略 2 花费更多的精力或代码。

策略 3 可能会花费您更多的精力和代码,而且我看不出它有什么好处。