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可能会花费您更多的精力和代码,但我认为这样做没有多大好处。