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

在Core Data for iOS中建模一对多关系,第1张

概述我有两个实体:患者和检查站. 患者具有DOB,姓名,ID等属性. Checkpoint具有dateRecorded,height,weight等属性. 您可能会得到这样的想法 – 我希望有一组患者,然后每个患者都可以拥有与该患者相关的检查点. 在两个实体上,我应该如何设置设置?设置是: 为此我看了documentation,我仍然感到困惑.我认为我想要的是一对多关系(对于病人),但是我不知道如何为 我有两个实体:患者和检查站.
患者具有dob,姓名,ID等属性.
Checkpoint具有dateRecorded,height,weight等属性.

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

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

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

解决方法 我本周刚刚开始使用Core Data.好问题!

关系:

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

反向关系:

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

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

删除规则:

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

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

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

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

总结

以上是内存溢出为你收集整理的在Core Data for iOS中建模一对多关系全部内容,希望文章能够帮你解决在Core Data for iOS中建模一对多关系所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存