作者LaPass (LaPass)
看板Soft_Job
標題Re: [請益] DataBase刪除資料的做法?
時間Sun Feb 15 00:37:09 2015
※ 引述《newkkloo (Min)》之銘言:
: 各位大大看到標題題先勿砲
: 我要問的是
: 現在的公司在做CRUD類型的系統的時,
: 當提供用戶"刪除"資料這個功能時
: 我發現公司前輩的做法是在資料表加上IsDelete欄位(預設false)
: 當用戶使用刪除資料時實際上是把IsDelete這個欄位設為true
: 所以並不會實際使用T-SQL下Delete語句來刪除
: 那當資料在呈現時,只需要把IsDetele != true的資料撈出來顯示就好
: 小弟也陸續待過幾個公司,不過也是第一次看到這種做法
: 我想的到的這種做法的優點
我到目前為止進過的公司都是多家個欄位去紀錄是否已經刪除。
這點很重要,因為客戶一定會手殘刪錯資料。
有個原則是,任何重大的操作,都要有辦法還原。
我之前進過的公司是EIP以及遊戲後台
: 1.當USER誤刪資料時可以快速的將資料"改"回來
: 2.若有Table間彼此有Reference在刪除時,可以不用處理完整性限制問題(?
: 當然缺點就是系統的資料只會多不會少
: 所以想請問各位大大也有人在處理資料刪除時是使用這種做法嗎???
增加很快的資料一般會定期去清,例如一個月多一兩百萬筆之類的
增加的量很少的話根本不用理他,資料庫很耐操的
: 這種做法會有什麼問題嗎??
撈資料的時候要多判斷個isDelete很不方便,其他都還OK
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.76.206
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423931833.A.5B5.html
推 littlethe: 寫習慣後,也不會覺得不方便,儲存量是比較頭痛就是了 02/15 01:31
→ avhacker: 用 view 濾掉就好了,直接碰 table 不是好習慣 02/15 02:17
→ fgh81113: 為何直接碰table不是好習慣 02/15 10:09
→ edward13: 為了一個欄位就要建view,大部份人寧願多加個where XD 02/15 12:56
推 Adonisy: 這是安全性的問題... 02/15 13:43
推 SansWord: 不難啊,用 hibernate 增加一個條件即可 02/17 02:04