关系的核心数据属性?
Core Data attribute on relationship?
我刚刚开始使用 Core Data。
我有一个 Headache
实体和一个 Medication
实体。头痛和药物之间存在多对多关系。
添加头痛时,可选择多种药物。我希望能够指定这些药物的数量。我更熟悉 MySQL,您可以在其中创建一个枢轴 table 并将数量包含在枢轴 table 以及 headache_id 和 medication_id 中,所以每个实例都可以有一个数量。
有没有什么方法可以在 Core Data 中创建这种关系?
A many-to-many relationship 可以在 Core Data 中建模。 Core Data 在 (SQLLite) 持久存储中自动为您创建一个中间连接 table。
您不能向该中间联接添加任何属性 table,因为它不是对象图数据模型的一部分。
为了表示数量,您可以将 Dose 实体添加到对象图中,以模拟头痛、数量和药物之间的多对多关系。这将代表您正在考虑的枢轴,剂量将以与核心数据创建的中间连接 table 相同的方式发挥作用。
缺点是 Headache
实体中不再有药物关系,或 Medication
实体中不再有头痛关系。
如果您真的想维持这种双实体多对多关系,您可以向药物添加剂量属性,但这会改变您的提取的性质。即,您必须获取特定药物的所有剂量才能找出该药物治疗了哪些头痛。
您应该考虑要执行的特定提取,以及您计划如何遍历对象图,然后将这些要求考虑到模型的设计中。
我刚刚开始使用 Core Data。
我有一个 Headache
实体和一个 Medication
实体。头痛和药物之间存在多对多关系。
添加头痛时,可选择多种药物。我希望能够指定这些药物的数量。我更熟悉 MySQL,您可以在其中创建一个枢轴 table 并将数量包含在枢轴 table 以及 headache_id 和 medication_id 中,所以每个实例都可以有一个数量。
有没有什么方法可以在 Core Data 中创建这种关系?
A many-to-many relationship 可以在 Core Data 中建模。 Core Data 在 (SQLLite) 持久存储中自动为您创建一个中间连接 table。
您不能向该中间联接添加任何属性 table,因为它不是对象图数据模型的一部分。
为了表示数量,您可以将 Dose 实体添加到对象图中,以模拟头痛、数量和药物之间的多对多关系。这将代表您正在考虑的枢轴,剂量将以与核心数据创建的中间连接 table 相同的方式发挥作用。
Headache
实体中不再有药物关系,或 Medication
实体中不再有头痛关系。
如果您真的想维持这种双实体多对多关系,您可以向药物添加剂量属性,但这会改变您的提取的性质。即,您必须获取特定药物的所有剂量才能找出该药物治疗了哪些头痛。
您应该考虑要执行的特定提取,以及您计划如何遍历对象图,然后将这些要求考虑到模型的设计中。