※ 引述《howdiun (Howdiun)》之銘言:
: 除了方便回復之外
: 這種做法還可以讓用戶端用update的方式同步資料(類似git/svn)
: 如果有資料刪除了
: isDelete=true之外
: updateTime也會更新
: 用戶端要更新的時候會用(updateTime>上次更新時間)去抓資料
: 於是下一次使用者更新的時候就會拿到這筆資料
: 並且把這筆資料刪除
: ※ 引述《newkkloo (Min)》之銘言:
: : 當提供用戶"刪除"資料這個功能時
: : 我發現公司前輩的做法是在資料表加上IsDelete欄位(預設false)
: : 當用戶使用刪除資料時實際上是把IsDelete這個欄位設為true
: : 所以並不會實際使用T-SQL下Delete語句來刪除
: : 那當資料在呈現時,只需要把IsDetele != true的資料撈出來顯示就好
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.15.215
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1424110086.A.EFC.html
在企業軟體中,雖有刪除功能,但不代表該資料就完全消失。
試想一份公文在經過了一些特殊事件後,為了特殊原因要從系統刪除。
難道這份公文就真的在歷史的洪流中被抹除嗎?
實際上可能會因為其他因素,後來需要拿回這份公文,
或著需要再取回這份被刪除的公文的內容作為脈絡及證據。
這時候這種系統設計就應該使用 marked delete
至於要加上 where isDeleted = true 這個問題,用 hibernate 就能輕鬆解決了。