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