关系的核心数据属性?

Mor*_*gan 3 core-data ios ios9

我刚刚开始使用 Core Data。

我有一个Headache实体和一个Medication实体。头痛和药物之间存在多对多的关系。

添加头痛时,可以选择多种药物。我希望能够指定这些药物的数量。我对 MySQL 更熟悉,您可以在其中创建一个数据透视表并将数量与头痛 ID 和药物 ID 一起包含在数据透视表中,这样每个实例都可以有一个数量。

有没有办法在 Core Data 中创建这种关系?

这是我的 Xcode 数据模型

小智 6

多对多关系可以在 Core Data 中建模。Core Data 会自动在 (SQLLite) 持久存储中为您创建一个中间连接表。

您不能做的是向该中间连接表添加任何属性,因为它不是对象图数据模型的一部分。

为了表示数量,您可以向对象图中添加一个 Dose 实体,以模拟头痛、数量和药物之间的多对多关系。这将代表您正在考虑的枢轴,并且剂量将以与 Core Data 创建的中间连接表相同的方式起作用。

在此处输入图片说明 缺点是Headache实体中不再存在药物关系,或实体中的头痛关系Medication

如果你真的想保持两个实体的多对多关系,你可以给药物添加一个剂量属性,但这会改变你获取的性质。即,您必须获取特定药物的所有剂量才能找出该药物治疗了哪些头痛。

您应该考虑将要执行的特定提取,以及您计划如何遍历对象图,然后将这些要求纳入模型的设计中。