【发布时间】:2020-03-05 11:50:23
【问题描述】:
我是 CoreData 环境的新手,我正在尝试了解它是如何工作的。
在我的项目中,我有一个超类VetExam,其子类是Examination、Treatments 和Vaccination,它们共享其超类的相同属性并引用Pet 类。另一方面,Pet 类包含除 VetExam 之外的每个类的引用数组,它应该只用于多态(这样我就可以使用 VetExam 对象并为每种类型创建一个视图)。
基于此模型,我尝试在 CoreData 中创建实体,但似乎我必须为每种类型指定每个实体的反向关系。这代表了一个问题,因为从VetExam 实体端,关系是Pet 类型,但在Pet 端,每种考试类型都是多对多,这不允许我得到VetExam 的反向引用。
由于这种解释很容易被误解,我将向您展示它的视觉表示。
问题出在VetExam 实体中,其 Inverse 属性未知。
有谁知道如何处理这种情况?
【问题讨论】:
-
要么没有从 VetExam 到 Pet 的关系,而是从子类到 Pet 的关系,或者在 Pet 到 VetExam 中只有一对多的关系,或者可能在这里放弃使用继承并让 Exam,治疗和疫苗接种是 3 个独立的实体。从长远来看,最后一个选项可能是最简单的,即使您必须复制一些属性。
-
放弃继承意味着改变应用结构,因为它不依赖核心数据atm
标签: swift database core-data polymorphism relationship