首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >核心数据关系删除操作-级联与无效与否认与无操作

核心数据关系删除操作-级联与无效与否认与无操作
EN

Stack Overflow用户
提问于 2010-06-26 12:47:34
回答 1查看 3.3K关注 0票数 1

核心数据正在抛给我一个循环。我有两个对象:卡片和CardSet,它们之间存在着多到多的关系,即在CardSet A中可以有卡片1、2和3,在CardSet B中可以有卡片2、4和5。

我试图设置我的删除操作,以便:

  1. 如果我删除一张卡,它将从它所属的所有CardSets中删除。(即删除卡片2,然后CardSet A= {1,3}和CardSet B= {4,5})
  2. 如果我删除一个CardSet,那么集合中的所有卡片都会被删除,除了那些属于另一组的卡。即删除CardSet A,则CardSet B保持{2,4,5}。

我的数据结构有两个关系,定义了这种多到多的关系: CardSet.cards和Card.cardSets。CardSet.cards的删除操作是cascade (因此,如果我删除一个CardSet,它的所有卡片都会被删除),而对于Card.cardSets的删除操作是null (因此,如果我删除一张卡,那么cardSets也不会被核化)。

但是,对于当前的设置,如果删除CardSet A,则CardSet B将保持{2、4、5} ,但卡2实际上已从数据存储中删除,这将导致试图访问CardSet时出现核心数据错误。如果卡仍然被另一个CardSet持有,我在这里应该做什么来确保它们不被删除?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-26 16:16:02

您希望将Card.cardsets设置为deny而不是null。这样,卡将不会被移除,直到它不再与任何CardSet相关。

来自核心数据编程指南

拒绝 如果在关系目的地至少有一个对象,则无法删除源对象。 例如,如果要移除某个部门,则必须确保该部门的所有员工首先转移到其他地方(或被解雇!)否则,无法删除该部门。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3123917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档