在 Core Data 中创建关系以执行删除

Posted

技术标签:

【中文标题】在 Core Data 中创建关系以执行删除【英文标题】:Creating relationship in Core Data to perform deletion 【发布时间】:2015-06-19 04:08:12 【问题描述】:

我是核心数据的新手,刚开始学习核心数据中的新想法。

我有核心数据数据库,其中包含三个实体 StudentDepartment 和一个用于映射学生和部门的实体。我们将其命名为 StudentDepartment

学生将拥有所有学生详细信息以及主键 studentID 部门将具有带有主键部门ID 的部门详细信息

StudentDepartment 将 studentID 和 DepartmentID 作为外键。

一个部门可以招收多个学生,一个学生可以注册多个部门。

如何在核心数据中创建此架构。 如果要删除学生表中的学生 ID,则应在 StudentDepartment 表中删除后续行。同样,如果删除部门表中的departmentID,则应在StudentDepartment中删除后续行。如何使用核心数据建立这种关系。

请给我一个 xcmod​​el。

【问题讨论】:

观看此系列youtube.com/watch?v=G36_91H4CKE 【参考方案1】:

CoreData 不是数据库,它是碰巧(有时)在关系数据库之上实现的对象存储。

这样做的实际结果是您确实不需要为关系映射显式创建单独的表。相反,您创建两个实体,然后在两者之间创建关系。根据您的描述,听起来您希望两者之间建立多对多的关系。在实现层面,核心数据会神奇地创建所需的关系表。

此外,您可以为关系的每一方建立一个删除规则,该规则规定在删除项目时要执行的操作。固定这种情况,您需要将两者的删除规则设置为无效,这会在删除任何一端时破坏关系。

【讨论】:

感谢您的回复。你能创建一个结构并向我展示吗?所以不需要第三张表和主键核心数据会为我创建它吗? 不只是关系映射。我还需要在第三个表中添加行。是否可以访问由核心数据内部创建的关系表。我需要将对象插入到这个映射表中.

以上是关于在 Core Data 中创建关系以执行删除的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Core Data 中创建数据模型?

IOS/Core-Data:添加多对多关系

减少 Core Data 中的关系数量

多上下文麻烦。无法在 Core Data 中创建两个队列(主队列和私有队列)保存数据

Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

如何获取 Core Data 中的关系项属性?