在 Core Data 中创建关系以执行删除
Posted
技术标签:
【中文标题】在 Core Data 中创建关系以执行删除【英文标题】:Creating relationship in Core Data to perform deletion 【发布时间】:2015-06-19 04:08:12 【问题描述】:我是核心数据的新手,刚开始学习核心数据中的新想法。
我有核心数据数据库,其中包含三个实体 Student、Department 和一个用于映射学生和部门的实体。我们将其命名为 StudentDepartment
学生将拥有所有学生详细信息以及主键 studentID 部门将具有带有主键部门ID 的部门详细信息
StudentDepartment 将 studentID 和 DepartmentID 作为外键。
一个部门可以招收多个学生,一个学生可以注册多个部门。
如何在核心数据中创建此架构。 如果要删除学生表中的学生 ID,则应在 StudentDepartment 表中删除后续行。同样,如果删除部门表中的departmentID,则应在StudentDepartment中删除后续行。如何使用核心数据建立这种关系。
请给我一个 xcmodel。
【问题讨论】:
观看此系列youtube.com/watch?v=G36_91H4CKE 【参考方案1】:CoreData 不是数据库,它是碰巧(有时)在关系数据库之上实现的对象存储。
这样做的实际结果是您确实不需要为关系映射显式创建单独的表。相反,您创建两个实体,然后在两者之间创建关系。根据您的描述,听起来您希望两者之间建立多对多的关系。在实现层面,核心数据会神奇地创建所需的关系表。
此外,您可以为关系的每一方建立一个删除规则,该规则规定在删除项目时要执行的操作。固定这种情况,您需要将两者的删除规则设置为无效,这会在删除任何一端时破坏关系。
【讨论】:
感谢您的回复。你能创建一个结构并向我展示吗?所以不需要第三张表和主键核心数据会为我创建它吗? 不只是关系映射。我还需要在第三个表中添加行。是否可以访问由核心数据内部创建的关系表。我需要将对象插入到这个映射表中.以上是关于在 Core Data 中创建关系以执行删除的主要内容,如果未能解决你的问题,请参考以下文章
多上下文麻烦。无法在 Core Data 中创建两个队列(主队列和私有队列)保存数据