核心数据属性关系?
我刚刚开始使用Core Data。
我有一个Headache
实体和一个Medication
实体。 头痛与药物之间有多种多样的关系。
当你头痛时,你可以select多种药物。 我希望能够指定这些药物的数量。 我更熟悉MySQL,在那里你将创build一个数据透视表,并将数量和headache_id以及medication_id一起包括在数据透视表中,这样每个实例都可以有一个数量。
有什么方法可以在Core Data中创build这种关系?
这是我的Xcode数据模型 。
核心数据可以模拟多对多的关系 。 核心数据自动在(SQLLite)持久性存储中为您创build一个中间连接表。
你不能做的是将任何属性添加到该中间连接表中,因为它不是对象图数据模型的一部分。
为了表示数量,您可以在对象图中添加一个Dose实体来模拟头痛,数量和药物之间的多重关系。 这将代表您正在考虑的关键点,剂量将以与Core Data创build的中间连接表相同的方式运行。
缺点是Headache
实体中不再存在药物关系,或Medication
实体中存在头痛关系。
如果你真的想要保持这种双实体多对多的关系,你可以给药物添加剂量属性,但是它会改变提取的性质。 也就是说,您将不得不提取所有剂量的特定药物,以了解该药物治疗哪些头痛。
您应该考虑您要执行的具体提取操作,以及您如何计划遍历对象图,然后将这些要求分解到模型的devise中。