看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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