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