我有一個複雜的模式與許多實體和關係。我想定義一個可以撤消的邏輯刪除操作。我曾考慮給每個表添加'isDeleted'標誌,但似乎對我有缺陷。 我也考慮添加一個類似於原始模式的歸檔模式,以及每次刪除操作以將數據移到那裏。似乎需要大量代碼來編寫「刪除」和「取消刪除」操作(特別是因爲我想模仿刪除邏輯delte的casade。)。從數據庫邏輯刪除
最後,我不確定在哪裏處理邏輯刪除事件 我使用EF,所以我可以在代碼中完成它,或者我可以在DB中使用刪除觸發器。
我會appreiciate關於如何以優雅的方式實現邏輯刪除任何recomendations。謝謝。
刪除標誌的缺點是,當您在刪除操作中節省工作時,您需要將isDeleted = false檢查添加到每個查詢。 – 2013-03-02 06:59:37
@omer schleifer作爲索引一部分的每個數據庫中的「已刪除」列和查詢範圍中的默認值要容易得多,並且將業務邏輯放入代碼中,而不是數據庫中。如果您想恢復或只查看已刪除的記錄怎麼辦?所以我懷疑任何其他嘗試是否值得超負荷和複雜。 – YvesR 2013-03-02 18:08:19