我刚刚开始使用核心数据。
我有一个Headache
实体和一个Medication
实体。头痛和药物之间存在多对多的关系。
当您加重头痛时,您可以选择多种药物。我希望能够指定这些药物的数量。我对 MySQL 更熟悉,您可以在其中创建一个数据透视表,并将数量以及头痛 ID 和药物 ID 包含在数据透视表中,以便每个实例都可以有一个数量。
有没有办法在核心数据中创建这种关系?
这是我的 Xcode 数据模型 https://i.stack.imgur.com/6cVZH.png.
多对多关系 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/HowManagedObjectsarerelated.html#//apple_ref/doc/uid/TP40001075-CH17-SW1可以在核心数据中建模。 Core Data 自动在 (SQLLite) 持久存储中为您创建一个中间连接表。
您不能向该中间连接表添加任何属性,因为它不是对象图数据模型的一部分。
为了表示数量,您可以将 Dose 实体添加到对象图中,以对头痛、数量和药物之间的多对多关系进行建模。这将代表您正在考虑的枢轴,并且剂量将以与核心数据创建的中间连接表相同的方式起作用。
The downside is that there's no longer a medications relationship in the Headache
entity, or a headaches relationship in the Medication
entity.
如果您确实想维持两个实体的多对多关系,您可以向药物添加剂量属性,但这会改变您获取的性质。也就是说,您必须获取特定药物的所有剂量才能找出该药物治疗的头痛。
您应该考虑要执行的特定获取,以及计划如何遍历对象图,然后将这些要求考虑到模型的设计中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)