通常使用哪種字段來伴隨軟刪除?任何這些,任何其他?軟刪除關於級聯恢復的常用屬性
bool IsDeleted // nice because the default value is 0 (no) just in case
date DateDeleted // is this a common one?
date DateCreated // more of a temporal db aspect
date DateModified // same with respect to created
我問的原因是,當使用軟刪除時,爲了保持完整性,必須執行級聯。然而,真正的技巧不是級聯刪除,這很容易。
The trick is cascade restoring
。在級聯刪除中,使用軟刪除方案時,關係圖中的所有記錄都被標記爲已刪除,無論標記是否爲非活動狀態,也許差異在於將datedeleted更改爲null。在級聯還原時,必須評估記錄引用,以查看它們被刪除的原因是與正在恢復,重新激活,未刪除的記錄相關的級聯刪除的結果。
級聯還原操作如何處理存儲的數據?
主要問題是恢復。刪除相當簡單。但是,當以級聯的反向方式恢復時,很難判斷是否有可能恢復級聯圖時,可能已經刪除了圖的依賴關係,而要恢復的圖被標記爲非活動狀態。 – 2012-04-11 17:14:18
看到這個問題的恢復更詳細的問題:http://stackoverflow.com/q/10111699/1026459 – 2012-04-11 18:30:30
@TravisJ - 我在我的回答指出,我推薦的交易日誌表解決方案包括一個「商業交易ID」有助於澄清層疊的內容。通過查找具有相同業務交易ID的所有更改,您可以找到在刪除時完成的所有步驟。您可以按照以下步驟執行還原。您可能遇到的唯一可能的問題是級聯刪除項目是否還具有其他依賴關係,這些依賴項可能在另一個業務事務ID下被軟刪除。這應該是罕見的。 – 2012-04-11 19:13:54