什麼是數據庫的概念相當於「當刪除用戶,刪除他的所有帖子」? 這是一件好事嗎?什麼是數據庫的概念相當於「當刪除用戶,刪除他的所有帖子」?
另一個例子:如果你的網站是一個編程論壇,你需要在刪除主題之前找到並刪除與該主題相關的評論。
這應該在數據庫層自動處理嗎?
什麼是數據庫的概念相當於「當刪除用戶,刪除他的所有帖子」? 這是一件好事嗎?什麼是數據庫的概念相當於「當刪除用戶,刪除他的所有帖子」?
另一個例子:如果你的網站是一個編程論壇,你需要在刪除主題之前找到並刪除與該主題相關的評論。
這應該在數據庫層自動處理嗎?
級聯更新,通常與外鍵引用一起使用。不同的DBMS提供不同級別的支持。
在論壇或類似網站的特定情況下,我建議使用「軟」刪除 - 將數據庫中的行標記爲被刪除,這將阻止它們在列表或搜索結果中被查看或返回,但不要完全刪除它們。這有利於取消等等,以反駁僞劣或偏見。
此外,我建議在刪除用戶帳戶時自動刪除用戶的帖子可能不是所有情況下的最佳行爲 - 當然,在處理巨魔/垃圾郵件帳戶時,您可能需要刪除垃圾郵件,但你不一定要炸掉這座在其他情況下,所有的信息,特別是因爲它引入了破引用(例如外部引用,來自其他職位交聯等)問題
級聯刪除
我會毫不猶豫地推薦真正的刪除 - 而不是使用一個軟刪除標記爲已刪除的記錄 - 在這種情況下,您可能會使用級聯更新(或不是,因爲orig inal主題已被標記爲已刪除)。
不知道這是你想知道的,但在MySQL中,你所問的事情類型(我認爲)被稱爲觸發器。它基本上是一個SQL語句,您可以在該表上關聯一個表和一個操作;例如,您可以設置一條語句,該語句將在刪除用戶的記錄時執行,這將刪除與該用戶關聯的所有評論/帖子/任何內容。
看到http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html和其中的鏈接(這是對MySQL,當然...其它數據塊可能不同)
回答你的問題是級聯刪除。爲了紀錄,我討厭用戶刪除作爲論壇功能。如果人們想離開,那麼......我想看看他們在那裏時所做的事情的歷史。
隱私和數據保護問題可能會阻止網站保留該數據。我希望如果我關閉一個網站的帳戶,所提供的任何個人信息至少是匿名的。 – Kev 2009-01-28 22:02:51