作者newkkloo (Min)
看板Soft_Job
標題[請益] DataBase刪除資料的做法?
時間Sat Feb 14 23:57:07 2015
各位大大看到標題題先勿砲
我要問的是
現在的公司在做CRUD類型的系統的時,
當提供用戶"刪除"資料這個功能時
我發現公司前輩的做法是在資料表加上IsDelete欄位(預設false)
當用戶使用刪除資料時實際上是把IsDelete這個欄位設為true
所以並不會實際使用T-SQL下Delete語句來刪除
那當資料在呈現時,只需要把IsDetele != true的資料撈出來顯示就好
小弟也陸續待過幾個公司,不過也是第一次看到這種做法
我想的到的這種做法的優點
1.當USER誤刪資料時可以快速的將資料"改"回來
2.若有Table間彼此有Reference在刪除時,可以不用處理完整性限制問題(?
當然缺點就是系統的資料只會多不會少
所以想請問各位大大也有人在處理資料刪除時是使用這種做法嗎???
這種做法會有什麼問題嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.127.153
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423929429.A.E28.html
推 MacPerson: 遇到的公司反而大部分都是這種做法,你只要能想像 02/15 00:15
→ MacPerson: user百分之百一定會刪錯資料,第一個找的人也一定是PG 02/15 00:15
→ MacPerson: 你就會知道其實這種系統設計保護的不只是user還有PG 02/15 00:16
→ MacPerson: 不過也有可能是產業別的關係 02/15 00:17
→ MacPerson: 我所在的產業別是 即使user真的刪錯資料 你也真的必須 02/15 00:19
→ MacPerson: 幫他生回來,因為少那一筆資料 有可能會被告的...... 02/15 00:19
推 vencil: Google也是不刪資料的啊...儲存空間的成本越來越小了 02/15 00:31
推 keyboard56: 在處理ERP的資料常這樣做 而且表準還包括最後修改者 02/15 00:33
→ keyboard56: 從什麼值改成什麼值 交易資料是環環相扣的 資料長太 02/15 00:33
→ keyboard56: 大 ㄧ般DBA會定期clone 02/15 00:33
→ vencil: 說到底也是成本的問題,幫客戶復原資料的成本比儲存空間大 02/15 00:44
推 littlethe: 我是支持這作法的,我以前做過erp 02/15 00:46
→ littlethe: 狀況真的和keyboard大講的一樣 02/15 00:47
推 sing10407: 在join資料時又要多一個判斷,不是很方便,不過可以做 02/15 01:04
→ sing10407: 成view表 02/15 01:04
推 TonyQ: 這做法還算是挺常見的。 02/15 02:02
推 alan3100: 這不是很正常做法嗎? 大部分的刪除本來就不是實際刪除 02/15 09:52
→ alan3100: 如果企業要做data mining 要存的歷史紀錄會比想像中的多 02/15 09:57
→ newkkloo: 原來如此~~是小弟見識太淺薄啦XD 02/15 11:18
推 banjmin: soft delete阿 權限可以只要update 回復資料又容易 02/15 12:04
推 edward13: 大部份是這種做法 要關心的反而是歷史資料archive問題 02/15 12:54
→ wuliou: 還蠻常見的 除非說空間已經快爆了才會真的去砍 02/17 17:43
推 mathrew: 是應該要這樣做 沒人知道以後這些資料需不需再找回來 02/17 20:25