2010-02-02 21 views
1

什麼是正確的方式來刪除相冊分層數據與其媒體。正確的方法來刪除相冊及其媒體和子專輯及其媒體

我應該剛剛開始循環並找到所有的子專輯ID並刪除thous並進行查詢以刪除屬於該專輯ID的所有媒體。

如果數據很多或專輯對於用戶來說很多,那麼這將會加載查詢執行。你的設備在這上面。

我的數據庫結構:

**album** 
album_id 
name 
parent_id 

**media** 
media_id 
album_id 
name 

回答

0
DELETE 
    FROM albums, 
     media 
WHERE media.albumID = albums.albumID 
    AND (albums.parentID = ? or albums.albumID = ?) 

這是最簡單的方法,假設你沒有在您的數據定義的觸發器或關係。不知道更多關於您的特定數據庫結構的信息,很難給出更好的答案;但是,與其他情況一樣,您最好將其作爲單個SQL語句執行。爲什麼?它保留了您的數據完整性,否則當您的軟件手動刪除特定條目時(這也是一種解決方案,但禁止瞭解更多信息,而不是我建議的),您必須在各種表上發佈鎖定。

+0

對不起,還添加了表格結構。 – Basit 2010-02-03 23:06:06

+0

我更新了片段;綁定參數將是相同的ID(您要刪除的父級相冊的ID)。 – macabail 2010-02-03 23:41:14