微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Core Data for iOS中建模一对多关系

我有两个实体:患者和检查站.
患者具有dob,姓名,ID等属性.
Checkpoint具有dateRecorded,height,weight等属性.

您可能会得到这样的想法 – 我希望有一组患者,然后每个患者都可以拥有与该患者相关的检查点.

在两个实体上,我应该如何设置设置?设置是:

为此我看了documentation,我仍然感到困惑.我认为我想要的是一对多关系(对于病人),但是我不知道如何为它们中的任何一个设置反转,或删除规则和其他东西.谢谢!!

解决方法

我本周刚刚开始使用Core Data.好问题!

关系:

由于一名患者可以有许多检查站,因此患者与检查站的关系是一对多关系. “反向关系”的概念基本上是这样的:你有一种关系(患者到检查点) – 现在继续从反向看,检查点的角度来看.检查点只适用于单个患者.因此,Checkpoint to Patient关系是一对一的关系.

反向关系:

要处理反向关系,只需创建每个关系,忽略反向关系.然后,在每个对象上建立关系后,继续将逆定义为另一个实体上的关系.

换句话说,关系指向另一个实体或一组实体.反向关系指向另一个实体的关系.

删除规则:

删除规则而言,它非常简单.当试图删除有检查点的患者时……

>拒绝:核心数据不允许您删除患者.
>级联:核心数据将删除实体(患者),以及级联关系并删除这些对象. (换句话说,Core Data也会删除Checkpoint对象.)
> Nullify:核心数据将删除患者,但首先删除关系.检查站将保持不变.

对于Patient实体可能需要deny或cascade,具体取决于您希望如何管理数据.根据您的使用案例,您可能不希望无效,因为检查点依赖于患者实体.

你想要检查点的nullify,因为Cascade会阻止你删除检查点而不删除整个病人,而Deny会有效地强迫它.

原文地址:https://www.jb51.cc/iOS/328712.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐