假设现在有两个实体,Product 和Manufacturer , 产品和制造商,一个产品只有一个制造商,一个制造商则可能会生产多个商品。这时候制造商和产品则是一对多的关系。

制造商.jpeg

制造商有 address 和 name 两个属性

产品.jpeg

产品有name, price ,time 三个属性。

关系.jpeg

产品与制造商是多对一的关系。

有过java开发经验的人看到Core Data ,可能会感觉到跟java 的 hibernate框架特别相似,事实上也确实有很多相通之处。但是hibernate使用起来要比Core Data 复杂的多。废话不多说。进入正题

使用Core Data 建立实体间关系的时候,点击实体关系,右侧属性检查器面板会出现关系的 Delete Rule 属性。

具体有 No Action ,Nullify , Cascade , Deny 四个属性。

一, No Action

No Action表示框架不对关系的目标对象做任何操作。我不鼓励使用No Action, 因为该选项把模型一致行动工作留给了我们开发人员。Core Data一部分能力就是他的管理数据模型一致性的能力。拿我们开篇Product实例和Manufacturer实例来讲,如果把Product 的 manufacturer关系的Delete Role 设置为No Action。现在我们删除了一个Product实例,和他相关的Manufacturer 对象仍然显示这个已经不存在的产品相关。这个时候维护模型一致性的工作就留到了我们手中,我们得再手动的删除Manufacturer中这个无效的产品。

二,Nullify

Nullify选项是默认选项, 他自动消除反向关系。该选项只对反向关系是可选类型的关系起作用。假设我们将Product 的 manufacturer关系的Delete Role 由 No Action 改为了Nullify。在次情况下,如果删除了一个产品,该产品将不会再出现在Manufacturer的产品关系中。

三, Cascade

Cascade 选项级联删除关系的源和目标,在当前情况下,对于Manufacturer对象的products关系,如果此关系的Delete Rule 被设置为Cascade, 则删除一个制造商时将删除该制造商的所有商品。对于一对多的关系中,我们可以使用级联关系,一的一方被删除。则多的一方也级联删除。相反,在多对一的关系中,则一般不能使用级联关系,删除多的一方的时候一定不能直接级联删除一的一方。

四,Deny

Deny 选项避免删除所有目标对象。对于Manufacture对象的products关系,如果删除仍然有产品的制造商。Core Data讲引发一系列的错误。这种情况下,删除制造商之前应该手动删除和该制造商相关的所有产品。

mysql中nullify_Core Data 数据库 No Action ,Nullify , Cascade , Deny 用法相关推荐

  1. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  2. MySQL中操作关系型数据库 SQL

    数据库(database) 常见的数据库: 关系型数据库: SQL server 微软 Oracle oracle (甲骨文) MySQL oracle DB2 IBM SQLIte 安卓 NoSQL ...

  3. mysql系统数据库服务器,mysql中的系统数据库服务器

    mysql中的系统数据库服务器 内容精选 换一换 用户正常的数据(不包括备份数据),以及云数据库RDS实例正常运行所需的数据(比如系统数据库.数据库回滚日志.重做日志.索引等).同时,包含如下云数据库 ...

  4. hive中的数据库与mysql中的hive数据库的关系

    mysql中的hive数据库是自己手动创建的,然后执行下面语句: schematool -dbType mysql -initSchema 该语句的作用是在mysql的hive数据库下建立一大堆的表格 ...

  5. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...

    在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...

  6. MYSQL——MYSQL中常见的数据库引擎

    文章目录 MYSQL中常见的数据库引擎 1.什么是数据库引擎? 2.MYSQL中有哪些数据库引擎 3.常见引擎介绍 (1)InnoDB (2)MyISAM (3)Memory(Heap) MYSQL中 ...

  7. mysql gbk编码 字节数,mysql中utf-8编码数据库转换成GBK编码的问题

    摘要 腾兴网为您分享:mysql中utf-8编码数据库转换成GBK编码的问题,之了课堂,易信,一折包邮,星球联盟等软件知识,以及七日杀,草莓软件,装修施工站,桔子会,桌面切换,看小说神器,酷派应用商店 ...

  8. mysql查看当前数据库中表明,MySQL中查看当前数据库的所有表

    关键词 MySQL数据库 表 摘要 本文介绍在MySQL数据库中,如何列出并查看当前数据库的所有表. 本文介绍在MySQL数据库中,如何列出并查看当前数据库的所有表. 我们创建一个数据库之后,数据库里 ...

  9. mysql 正则替换 换行,MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace.regexp进行正则表达式替换的用法.,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于"./uploads/110100_cityHo ...

最新文章

  1. Linux下C语言编程入门-14关于网络编程(1)TCP
  2. 6、Hive的特殊分隔符处理
  3. AOE网上的关键路径
  4. idea 用iterm 终端_帅气逼人的终端环境
  5. 【嵌入式】C语言高级编程-语句表达式(03)
  6. Binary String Reconstruction CodeForces - 1352F(思维+构造)
  7. 服务器是计算机的一种 是指,pc服务器是指什么意思
  8. ppt如何旋转流程图_张伟随笔37:我书写方程式和画流程图的方法
  9. python zope 工作流_使用C语言来扩展Python程序和Zope服务器的教程
  10. SQL数据去重复 Distinct 和 row_number() over()
  11. NLTK学习笔记(六):利用机器学习进行文本分类
  12. 中国互联网今日正式满 20 岁
  13. iOS开发日记40-详解React Native
  14. Careercup - Microsoft面试题 - 5680049562845184
  15. anylogic和java_Anylogic各个版本的功能对比
  16. Phase2 Day16 数据库SQL
  17. 经典大数据架构案例:酷狗音乐的大数据平台重构
  18. 编程猫海龟编辑器 附使用教程
  19. 锐捷交换机忘记密码解决方案:恢复出厂设置、重置配置文件
  20. golang的ping检测主机存活

热门文章

  1. php点赞效果代码,php点赞效果的制作代码+解析(jQuery+Ajax+PHP实现“赞”)
  2. ftp主动式和被动式_主动与被动公司和分布式工作:十个基本要点
  3. c语言递归为什么会自动返回,聊聊递归与尾递归——仍然以C语言为例
  4. JDK介绍(笔记学习)
  5. 以太网:网络唤醒(WOL)全解指南:原理篇
  6. Windows Service服务程序的原理及实现(0)服务主函数 控制处理函数
  7. 2021/01/29思维导图(3)
  8. 搜索引擎的三个时代及第三代搜索引擎的商业前景
  9. VirtualBox点击启动时报错
  10. 天梯赛最短路专题 -- 旅游规划、城市间紧急救援