看板 Soft_Job 關於我們 聯絡資訊
各位大大看到標題題先勿砲 我要問的是 現在的公司在做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