在我的數據模型中,我有一個播放列表實體,該播放列表實體與播放列表中的項目具有多對多關係,並且具有相反的關係。我應該在播放列表實體中使用什麼刪除規則?
當播放列表被刪除時,我想要刪除它中的所有東西,所以我使用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希望管理器在沒有員工時也被刪除。但是我想在播放列表中的所有項目都被刪除時仍然保留播放列表。
但是,如果我使用nullify並刪除很多對象,它們仍然會在硬盤中,對嗎?如果我刪除了很多,他們可能會佔用很多空間。我誤解了什麼嗎? – Sweeper
你是誤會。它是從播放列表到該項目的前向引用,將被取消(因爲該項目不再存在)。該項目將被刪除 – Paulw11
我現在明白了。所以它有點像ARC,對吧?當引用設置爲null時,該對象將自動進行垃圾收集。 – Sweeper