关于ios:具有继承功能的Cloudkit策略

Cloudkit strategy with inheritance

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

在模型中,请保留一个抽象类Element和两个子类:A和B

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

CloudKit策略2:创建记录类型元素。 Element包含Element,A和B的所有参数,以及指示记录实际上是Type A还是Type B

的字符串。

CloudKit策略3:创建记录类型元素,记录类型A和记录类型B。每个包含与模型相同的参数。记录类型A和记录类型B还具有对父元素

的附加引用参数

我认为策略2是最容易实现的方法,但是它将在云中占用更多空间。仅当我的应用程序真正起飞并且只专注于维护简单的CloudKit模型时,我才应该担心浪费的空间吗?

策略3是否过度杀伤力?

如果我使用策略1,则将所有字段多次复制为几种记录类型似乎有些la脚,但是通常这样做是吗?

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

哪个是最好的策略?


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

如果将来在类型B中添加更多字段,那么在策略2下,您必须将这些字段添加到为类型B或A创建的每条记录中,这对我来说不太正确。

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

策略3可能会花费您更多的精力和代码,但我认为这样做没有多大好处。