2012-02-17 82 views
0

我有一個頁面,我已經創建了一大堆'feed items' - 像facebook - 我目前面臨的問題是找出'刪除邏輯'的最佳方法。也就是說,如果用戶刪除PAGE - 我要刪除「連接信息」,以在此頁:刪除連接消息的頁面的最佳方法?

  1. 飼料項目
  2. 評論

我有一個保存feedItems,註釋等的MySQL表的數量 - 但我不確定如果用戶刪除頁面,刪除所有這些最「最佳方式」?

有人能夠建議嗎?我猜它類似於StackOverflow的 - 如果一個問題是刪除,什麼是刪除

  1. 問題
  2. 答案
  3. 所有評論

等的最佳方式?

回答

0

如果您使用的是InnoDB,最簡單的方法是在您的外鍵上使用ON DELETE CASCADE。當外鍵引用的行被刪除時,該選項使MySQL刪除表中的行。

例如,如果你有一個帶有主鍵ID的問題表,並且一個表使用外鍵「question_id」「回答」,當問題被刪除時,「答案」中的所有行包含相同的question_id也會被刪除。

否則您需要編寫多個刪除語句,每個表一個。

+0

感謝您的迴應:)因此,實際上刪除'問題'[例如]還是'隱藏數據'更好?也就是說,用戶點擊'刪除',但只隱藏 – Andy 2012-02-17 14:02:46

+0

嗯,我不能真正回答,這取決於您的應用程序的要求。如果您希望稍後能夠取消刪除數據,或者您仍需要鏈接項目的某些信息,則隱藏(軟刪除)數據是非常好的。一個典型的例子是,如果您保留已刪除用戶的帖子,您希望將用戶行保留在數據庫中,以便能夠顯示其用戶名(以及「已刪除」標籤)。實現此目的的一個好方法是添加'deleted_at DATETIME NULL DEFAULT NULL'列,並存儲刪除的時間戳(如果不刪除,則爲NULL)。 – rlanvin 2012-02-17 15:03:34

相關問題