在我的数据模型中,我有一个播放列表实体,它与播放列表中的项目具有多对多的关系,并具有反向关系。
当删除播放列表时,我希望删除其中的所有内容,因此我使用Cascade删除规则。删除播放列表中的项目时,只需删除该项目即可。我应该使用哪条规则?
我将说明这一点。
首先,托管对象看起来像这样
Playlist 1
items: a, b, c
Playlist 2
items: d
item a
playlist: 1
item b
playlist: 1
item c
playlist: 1
item d
playlist: 2
如果我删除播放列表1,它将如下所示:
Playlist 2
items: d
item d
playlist: 2
如果我删除d,它将如下所示
Playlist 1
items: a, b, c
Playlist 2
items:
item a
playlist: 1
item b
playlist: 1
item c
playlist: 1
从文档中,我不知道用于反向关系的规则。
拒绝:只有在没有播放列表的情况下才会删除该项目。但是由于多对多关系中的级联规则,项目将始终具有播放列表
Nullify:仅删除播放列表与项目之间的关系,但不删除该项目。我希望删除该项目。
级联:显然我不想在删除项目时删除播放列表
无操作:这会导致项目被删除,但播放列表的items
属性仍会保留对该项目的引用。
我想我一定是误解了其中一条规则。必须有一个我可以使用的,对吗?
注意:这不是this的副本,因为该OP希望在没有员工时也删除管理器。但是当我的所有项目都被删除时,我仍希望保留播放列表。
答案 0 :(得分:1)
删除规则引用关系的目标,并说“当删除此对象时,我该如何处理相关对象”。无论如何,您的item
都将被删除,因为这就是您正在做的事情。阻止item
被删除的唯一规则是deny
如果您希望item
与playlist
之间存在反比关系nullify
,因为这会将播放列表中的引用移到项目中。