防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”
?
用 DeleteMark 的出發點:
1:雖然在界面上有刪除提示,但是客戶錯誤的刪除了一筆數據后,想恢復被刪除的數據是特別困難的,有人曾比喻,若輸入數據的工作量,用1來比喻,那恢復被誤刪除的數據的工作量,很可能是100,所以就算界面上有刪除提示,客戶也確認刪除了,但是還能有把數據挽救的余地才是保險的做法。
?
2:程序寫太好了,客戶用了好幾年,程序的速度也飛快,數據庫也很精簡,很難收到維護費,曾經有一個大客戶,軟件用了接近10年都好好的,客戶從來不支付維護費,你也沒辦法上門收維護費,因為程序寫得太精悍了,這10年里,不知道損失了多少錢,本來可以收蠻多維護費的事情,就被搞砸了,若每天都產生日志文件,被刪除的數據都在數據庫里,這10年下來,數據庫也會變得很龐大,軟件運行速度自然就下來了,客戶也愿意支付維護費,數據都保留著,也不是壞事,防止萬一出現問題,都能有恢復過來的保障。
?
?
?
設置了 DeleteMark 標志后,程序的工作量主要體現在:
A: 數據庫結構設計需要調整,所有的類都需要重新生成(用代碼生成器生成還算好點兒,做到設計與實際是同步的很困難)。
B: 所有的選擇數據的方法,都需要加上 DeleteMark = 0 的判斷條件。
C: 所有的業務邏輯上,都需要加上 ?DeleteMark = 0 的判斷條件。
D: 所有的刪除方法,都需要修改,以前是直接進行刪除操作,現在是偽刪除,只是打上刪除標志。
?
由于程序的功能點也相對多,平時管理上、工作上也有很多事情需要處理,所以這個增加 ?DeleteMark 標志足足耗費了1周時間,其實很多事情,嘴巴上說說都很簡單,但是真正需要去做,只是那么一點改進,往往是需要耗費很多精力、時間,才能做好,才能上升一個臺階。
?
?
?
將權限管理、工作流管理做到我能力的極致,一個人只能做好那么很少的幾件事情。posted on 2010-07-19 11:20 吉日嘎拉 不僅權通用權限 閱讀(3620) 評論(123) 編輯 收藏
評論
評論共2頁:? 上一頁? 1? 2?#24樓 回復 引用 查看 ??
刪除標記,我一般用bit,你用int的話,可能有點兒浪費啦。 2010-07-19 12:35 | Fred_Xu? ?????#25樓 回復 引用 查看 ??
呵呵,改這么個功能需要耗費一周?!我理解什么叫耦合了 2010-07-19 12:38 | LanceZhang? ?????#26樓 回復 引用 查看 ??
引用Fred_Xu:刪除標記,我一般用bit,你用int的話,可能有點兒浪費啦。或者tinyint足夠了 2010-07-19 12:39 | LanceZhang? ?????
#27樓 回復 引用 查看 ??
我認為觸發器不是一個很好的解決方案,把修改帶來的額外開銷全都推脫給了server端。既然架構已經固定,成本最低的修改方法應該是通過AOP的方式將刪除方法攔截,在執行物理刪除之前先將待刪除的記錄backup到log表中。
若非特別適合某些場景的話,修改物理表結構真的是下下策 2010-07-19 12:43 | LanceZhang? ?????
#28樓 回復 引用 查看 ??
數據標記刪除后,如何方便、正確地恢復被誤刪的數據更是老火。由于刪除的數據大多是存在級聯標記刪除的,恢復起來十分的痛苦。
1、要提供兩種查詢瀏覽模式,一種是過濾刪除標記后的,一種是全部的記錄。2、對每類記錄都要提供恢復功能。 2010-07-19 12:43 | 書上路苦? ?????
#29樓 回復 引用 查看 ??
一直用tinyint 2010-07-19 12:46 | 要有好的心情? ?????#30樓[樓主] 回復 引用 查看 ??
若只是修改一個頁面,那還是相對容易的,若修改幾十個頁面,甚至有些關聯關系的,就沒那么容易了,而且,不可能給你1周時間,專心修改這個,還有很多日常工作需要處理的,只能是利用空閑時間去做這個。若真的花費1周全部的時間去干這個,估計老板早就炸了。
引用LanceZhang:呵呵,改這么個功能需要耗費一周?!我理解什么叫耦合了
2010-07-19 12:48 | 吉日嘎拉 不僅權限管理? ?????
#31樓[樓主] 回復 引用 查看 ??
你這個回復有水平,的確是會遇到“級聯標記刪除”的情況,相對來說,涉及到級聯,問題就更復雜化了。引用書上路苦:
數據標記刪除后,如何方便、正確地恢復被誤刪的數據更是老火。
由于刪除的數據大多是存在級聯標記刪除的,恢復起來十分的痛苦。
1、要提供兩種查詢瀏覽模式,一種是過濾刪除標記后的,一種是全部的記錄。2、對每類記錄都要提供恢復功能。
2010-07-19 12:49 | 吉日嘎拉 不僅權限管理? ?????
#32樓 回復 引用 查看 ??
支持一下,老吉實務排的,只要對人有所啟發,都可以發到主頁。 2010-07-19 12:52 | Junior Lau? ?????#33樓 回復 引用 查看 ??
改路線了? 2010-07-19 12:54 | 江南白衣? ?????#34樓 回復 引用 查看 ??
看了一路,只能說悲劇。 2010-07-19 12:56 | blackcat? ?????#35樓 回復 引用 ??
就是個歷史信息 還有啥啊 這玩意寫出來丟人 2010-07-19 13:16 | olam123[未注冊用戶]#36樓 回復 引用 查看 ??
引用olam123:就是個歷史信息 還有啥啊 這玩意寫出來丟人有想法就可以寫出來,有啥不可。 2010-07-19 13:21 | Tonny Yang? ?????
#37樓 回復 引用 查看 ??
雙庫.一庫在用(其內包含最近被刪除的數據)
一庫裝一些刪除時間長于XX天的數據. 2010-07-19 13:24 | dotNetDR_? ?????
#38樓 回復 引用 查看 ??
還是鄙視一下吧,這篇文章看來吉日改代碼還是改的很勤快的,全部代碼都改了一遍,全都加上了 where deleteflag = 1,呵呵,真是辛苦啊 2010-07-19 13:30 | Keep Walking? ?????#39樓 回復 引用 ??
吉爾一寫技術文章就原形畢露了,還以為有多厲害了,和剛畢業的大學生差不多。 2010-07-19 13:33 | 吳曉凡[未注冊用戶]#40樓 回復 引用 查看 ??
2:程序寫太好了,客戶用了好幾年,程序的速度也飛快,數據庫也很精簡,很難收到維護費,曾經有一個大客戶,軟件用了接近10年都好好的,客戶從來不支付維護費,你也沒辦法上門收維護費,因為程序寫得太精悍了,這10年里,不知道損失了多少錢,本來可以收蠻多維護費的事情,就被搞砸了,若每天都產生日志文件,被刪除的數據都在數據庫里,這10年下來,數據庫也會變得很龐大,軟件運行速度自然就下來了,客戶也愿意支付維護費,數據都保留著,也不是壞事,防止萬一出現問題,都能有恢復過來的保障。2010-07-19 13:39 | Arthas-Cui? ?????
#41樓 回復 引用 查看 ??
額。。。 2010-07-19 13:39 | Arthas-Cui? ?????#42樓 回復 引用 查看 ??
程序寫太好了,客戶用了好幾年,程序的速度也飛快,數據庫也很精簡,很難收到維護費,曾經有一個大客戶,軟件用了接近10年都好好的,客戶從來不支付維護費,你也沒辦法上門收維護費,因為程序寫得太精悍了,這10年里,不知道損失了多少錢,本來可以收蠻多維護費的事情,就被搞砸了,若每天都產生日志文件,被刪除的數據都在數據庫里,這10年下來,數據庫也會變得很龐大,軟件運行速度自然就下來了,客戶也愿意支付維護費,數據都保留著,也不是壞事,防止萬一出現問題,都能有恢復過來的保障。經典~ 2010-07-19 13:43 | peace? ?????
#43樓 回復 引用 查看 ??
只能說不是創新,因為這種方式一直就有。 2010-07-19 13:44 | hoodlum1980? ?????#44樓 回復 引用 查看 ??
另外弱弱的說以下。。。。3不是出發點的一部分。。。 2010-07-19 13:45 | Arthas-Cui? ?????
#45樓 回復 引用 查看 ??
另外弱弱的說一下。。。。3不是出發點的一部分。。。 2010-07-19 13:45 | Arthas-Cui? ?????
#46樓[樓主] 回復 引用 查看 ??
大哥,那你寫幾個上來,看看唄,我是普通老百姓,還能寫啥呀?能寫高科技嗎?天天弄的,不就是這些應用類的嗎?引用吳曉凡:吉爾一寫技術文章就原形畢露了,還以為有多厲害了,和剛畢業的大學生差不多。
2010-07-19 13:45 | 吉日嘎拉 不僅權限管理? ?????
#47樓 回復 引用 查看 ??
@Keep Walking人家用代碼生成器呢。。。。 2010-07-19 13:46 | Jon.Hong? ?????
#48樓 回復 引用 查看 ??
太easy了,這也可以寫文章? 2010-07-19 13:47 | feijia? ?????#49樓 回復 引用 查看 ??
辛苦了~呵呵 2010-07-19 13:49 | shootsoft.net? ?????#50樓[樓主] 回復 引用 查看 ??
不easy的都不會,太easy的又不精。我就不信,說easy的人,自己的軟件里,是否都處理得想當好?
有勇氣敢說的,不知道有幾個人。
引用feijia:太easy了,這也可以寫文章?
2010-07-19 13:54 | 吉日嘎拉 不僅權限管理? ?????
#51樓[樓主] 回復 引用 查看 ??
好在這個是用代碼生成器生成的,否則會改死人了,主要是重復勞動意義不大。引用Jon.Hong:
@Keep Walking
人家用代碼生成器呢。。。。
2010-07-19 13:54 | 吉日嘎拉 不僅權限管理? ?????
#52樓 回復 引用 查看 ??
呵呵 2010-07-19 13:55 | 代碼亂了? ?????#53樓[樓主] 回復 引用 查看 ??
謝謝您的提醒,有錯我就改,能指點錯誤,就是我的恩師。引用Arthas-Cui:
另外弱弱的說一下。。。。
3不是出發點的一部分。。。
2010-07-19 13:56 | 吉日嘎拉 不僅權限管理? ?????
#54樓[樓主] 回復 引用 查看 ??
記得有一個寫C語言入門書籍的,好像叫 譚浩強? 他寫的書是不是太簡單了?呵呵,非常的easy,把easy的東西真正做好的,也沒幾個人了。引用feijia:太easy了,這也可以寫文章?
2010-07-19 13:56 | 吉日嘎拉 不僅權限管理? ?????
#55樓 回復 引用 ??
為什么不用一個專門的delete表來存放被刪除數據呢?那樣恢復也一樣容易啊,而且程序基本不用改--做一個delete觸發器就好了。 2010-07-19 14:00 | wxt[未注冊用戶]#56樓 回復 引用 查看 ??
針對樓上一些評論,我不多說什么。 因為咱也不是那么厲害, 看著一個個說的很狂妄, 我悄悄面墻角去。
只是一不小心看到個觸發器!!!
我就火大了!
我只能說:每一個沒事就用觸發器的開發人員, 上輩子都是折翼的天使! 2010-07-19 14:03 | Arthas-Cui? ?????
#57樓 回復 引用 查看 ??
全家都是! 2010-07-19 14:05 | Arthas-Cui? ?????#58樓[樓主] 回復 引用 查看 ??
@Arthas-Cui不同的數據庫,對出發器的支持也不一樣的,
例如 Access 不知道有沒有出發器?
數據庫的 行級出發器,也不一樣的,可能也會引發一大堆其他問題。
出發器是能不用則不用的原則,會對開發、調試、維護帶來很多麻煩,
一般是沒啥經驗的,或者初學者,喜歡玩存儲過程、出發器、約束啥啥的,
不是把好玩的技術都堆在一起就是 牛B系統了。
越簡單,越好用,越穩定,越容易才是硬道理。
2010-07-19 14:07 | 吉日嘎拉 不僅權限管理? ?????
#59樓 回復 引用 查看 ??
其實我覺得觸發器是這樣的:本來, 一個外鍵約束, 簡簡單單的就搞定了。
然后, 設計的時候, 想的不周到。
加上客戶后來變了需求。
又不想改設計, 或者設計不靈活, 沒法改,
或者干脆說沒能力改設計!
然后怎么辦?
觸發器吧。
這東西NB。
一下子就沖上去了。
然后維護的人就痛苦死了。
我以前見一系統, 別的公司留下的, 他們被趕走了, 讓我們給他們做維護。(原因不詳)
額, 一天, 問, 一個數據是怎么來的?
我說我追下吧。
然后發現來自一個觸發器。
然后來自另一個觸發器。
然后來自一個存儲過程給表做的insert。。。
然后來自另一個觸發器~
。
。
。
。
。。
(具體到底誰調誰不記得了, 反正意思就是這么個意思。)
然后我們集體:
囧rz
然后和客戶說:
“這數據哪里來的那么重要么?”
客戶說:
“很重要!!!!”
我們繼續:
囧rz。。。。
(不詳的原因終于詳了) 2010-07-19 14:13 | Arthas-Cui? ?????
#60樓 回復 引用 查看 ??
正常的問題 2010-07-19 14:35 | 遲暮? ?????#61樓 回復 引用 查看 ??
@Arthas-Cui從來不要觸發器。。。。 2010-07-19 14:37 | Jon.Hong? ?????
#62樓 回復 引用 查看 ??
引用吉日嘎拉 不僅權限管理:@Arthas-Cui
不同的數據庫,對出發器的支持也不一樣的,
例如 Access 不知道有沒有出發器?
數據庫的 行級出發器,也不一樣的,可能也會引發一大堆其他問題。
出發器是能不用則不用的原則,會對開發、調試、維護帶來很多麻煩,
一般是沒啥經驗的,或者初學者,喜歡玩存儲過程、出發器、約束啥啥的,
不是把好玩的技術都堆在一起就是 牛B系統了。
越簡單,越好用,越穩定,越容易才是硬道理。
支持樓主. 2010-07-19 14:38 | 小堆爸? ?????
#63樓 回復 引用 查看 ??
引用Arthas-Cui:其實我覺得觸發器是這樣的:
本來, 一個外鍵約束, 簡簡單單的就搞定了。
然后, 設計的時候, 想的不周到。
加上客戶后來變了需求。
又不想改設計, 或者設計不靈活, 沒法改,
或者干脆說沒能力改設計!
然后怎么辦?
觸發器吧。
這東西NB。
一下子就沖上去了。
然后維護的人就痛苦死了。
我以前見一系統, 別的公司留下的, 他們被趕走了, 讓我們給他們做維護。(原因不詳)
額, 一天, 問, 一個數據是怎么來的?
我說我追下吧。
然后發現來自一個觸發器。
然后來自另一個觸發器。
然后來自一個存儲過程給表做的insert。。。
然后來自另一個觸發器~
。
。
。
。
。。
(具體到底誰調誰不記得了, 反正意思就是這么個意思。)
然后我們集體:
囧rz
然后和客戶說:
“這數據哪里來的那么重要么?”
客戶說:
“很重要!!!!”
我們繼續:
囧rz。。。。
(不詳的原因終于詳了)
同感...
2010-07-19 14:41 | 小堆爸? ?????
#64樓 回復 引用 查看 ??
用觸發器簡直是自己給自己找事兒,一套程序永遠自己維護?如果不是,邏輯最好都體現在代碼或者存儲過程里,否則別人維護會出大問題。 2010-07-19 14:41 | 超晨? ?????#65樓 回復 引用 查看 ??
放入回收站 清空回收站 2010-07-19 14:59 | 趙弟棟? ?????#66樓[樓主] 回復 引用 查看 ??
您的這個回復通俗易懂,絕對能說服客戶,能說服開發人員。引用趙弟棟:放入回收站 清空回收站
2010-07-19 15:16 | 吉日嘎拉 不僅權限管理? ?????
#67樓 回復 引用 ??
觸發器都不會用。。。有簡單方法不用,非做無用功,服了。做什么之前,最好先上網查查既有的解決方案,不要閉門造車 2010-07-19 15:22 | 觸發器都不會用[未注冊用戶]#68樓 回復 引用 查看 ??
@吉日嘎拉 不僅權限管理吉日 冷靜 冷靜. 2010-07-19 15:50 | chenkai? ?????
#69樓[樓主] 回復 引用 查看 ??
浙大網新易盛公司在招聘.NET開發人員,歡迎投簡歷。2010-07-19 15:53 | 吉日嘎拉 不僅權限管理? ?????
#70樓 回復 引用 ??
引用吉日嘎拉 不僅權限管理:浙大網新易盛公司在招聘.NET開發人員,歡迎投簡歷。
如果進了你的公司。會不會和你一樣招人BS,:P 2010-07-19 16:05 | ????[未注冊用戶]
#71樓 回復 引用 查看 ??
其實加上刪除標志還有一個好處,在特殊情況的數據庫同步時也有關鍵作用 2010-07-19 16:51 | liy? ?????#72樓[樓主] 回復 引用 查看 ??
@????我有那么恐怖嗎?只是有點兒出了名而已, 浙大網新又不是我開的,老板給發工資,為人民服務,拿辛苦錢,有什么好鄙視的?
大家都是靠自己勞動賺錢的嘛,沒啥好鄙視的。
2010-07-19 17:01 | 吉日嘎拉 不僅權限管理? ?????
#73樓 回復 引用 ??
我習慣用IsDeleted 2010-07-19 17:21 | asdio[未注冊用戶]#74樓 回復 引用 查看 ??
引用Arthas-Cui:針對樓上一些評論,
我不多說什么。 因為咱也不是那么厲害, 看著一個個說的很狂妄, 我悄悄面墻角去。
只是一不小心看到個觸發器!!!
我就火大了!
我只能說:每一個沒事就用觸發器的開發人員, 上輩子都是折翼的天使!
對頭,把表鎖死了就玩完了,尤其是Internet應用;不過在大企業內部應用中,觸發器的使用是非常普遍的,沒辦法,業務邏輯太復雜,幾百行的存儲過程是常見的 2010-07-19 17:23 | LanceZhang? ?????
#75樓[樓主] 回復 引用 查看 ??
這個命名也不錯,支持。引用asdio:我習慣用IsDeleted
2010-07-19 17:24 | 吉日嘎拉 不僅權限管理? ?????
#76樓 回復 引用 查看 ??
看了吉日兄的這篇文章,感覺現實中對于誤刪除的理解不是這樣!因為,只要客戶有刪除數據的權限,即使是所謂的“偽刪除”也是一種合理的操作,只不過是他的刪除操作與現實中的邏輯發生了沖突。
在現實中,很多的數據都有時效性,一旦刪除后,數據就變成“過期數據”了,其它相關表的數據也可能會發生變化;同時系統中又不是你一個人在使用,也未見得是“當時”就發現了誤刪除,所以要想完全避免誤刪除是不可能的。
2010-07-19 17:30 | 卡通一下? ?????
#77樓 回復 引用 查看 ??
我用的命名直接是:Recycle
然后大概這樣:
if(Recycle)
{
Recycle();
}
else
{
Delete();
} 2010-07-19 17:30 | Arthas-Cui? ?????
#78樓 回復 引用 查看 ??
不知為什么大家對觸發器有這么大的意見,有很多“強相關”的操作用觸發器也沒有什么不好,就算不用它,不也得在一個事務中完成操作嗎?2010-07-19 17:49 | 卡通一下? ?????
#79樓 回復 引用 查看 ??
標識位用int類型,空間浪費啊 2010-07-19 18:07 | 寂寞的肥肉? ?????#80樓 回復 引用 查看 ??
吉日哥,雖然我不看你的技術文章。但是我還是頂你。 2010-07-19 18:14 | kb小強? ?????#81樓[樓主] 回復 引用 查看 ??
總共也沒幾千條數據,無所謂了。引用寂寞的肥肉:標識位用int類型,空間浪費啊
2010-07-19 19:19 | 吉日嘎拉 不僅權限管理? ?????
#82樓 回復 引用 查看 ??
刪除 ---> 修改 2010-07-19 19:47 | IT鳥? ?????#83樓 回復 引用 查看 ??
其實我挺為lz擔心的,那幫人又有借口黑你了.... 2010-07-19 19:53 | 炭炭? ?????#84樓 回復 引用 查看 ??
我覺得可以用一個表來保存被刪掉記錄的索引,select語句對兩個表操作也蠻簡單的,這個類似于你flag標記的方式,但是對已有程序的修改幅度應該要小。我在華為做的項目都是不用觸發器的,因為在表很多的情況下(200多個表,另外還有100多個視圖),用觸發器會大大增加邏輯的復雜性,維護這些邏輯的開銷還不如增加硬盤的開銷來的實在,現在硬盤很便宜的。
當然,如果在銀行系統這種數據量超大的項目中,觸發器應該是必備的。
2010-07-19 20:31 | 瀟湘雨歇? ?????
#85樓 回復 引用 查看 ??
我只有一個觀點,就是作為一個data-centric程序開發來說,lz數據庫設計能力以及功底有待考量。這是設計數據庫的常識,多column沒關系,少了后面就會增加無數麻煩。還有,我覺得用生成器的朋友十有八九都是table<->object mapping的這類。與其這樣為什么放著datatable不用呢。。。事務總是顛倒了來搞,不覺得別扭么? 2010-07-19 20:57 | Vincent Yang? ?????#86樓[樓主] 回復 引用 查看 ??
@Vincent Yang沒看明白高手的留言,不好意思啊,可能是我水平不夠。
2010-07-19 21:06 | 吉日嘎拉 不僅權限管理? ?????
#87樓[樓主] 回復 引用 查看 ??
@瀟湘雨歇以我的理解,出發器是在沒有辦法修改源碼的前提下,迫不得已采取的方法,特別是集成沒有源碼的管理系統。
2010-07-19 21:08 | 吉日嘎拉 不僅權限管理? ?????
#88樓 回復 引用 查看 ??
支持下! 2010-07-19 21:48 | Dacey? ?????#89樓 回復 引用 查看 ??
很想訓人,看你寫Blog這么辛苦還是支持你一下以后別再以為客戶授權了你DELETE
數據完整性。。。 2010-07-19 22:21 | 鈴蘭草? ?????
#90樓 回復 引用 查看 ??
還好我們一開始就是假刪除~ 2010-07-19 22:25 | 真名士? ?????#91樓[樓主] 回復 引用 查看 ??
還好,你沒寫類似的博文,否則又要被罵死了,哈哈引用真名士:還好我們一開始就是假刪除~
2010-07-19 22:27 | 吉日嘎拉 不僅權限管理? ?????
#92樓 回復 引用 ??
看著都覺得無聊。10年前就應該設計好的東西,現在居然能放到首頁上大肆渲染,不是你該罵,而是你在找罵。 2010-07-19 22:42 | 無suo事事[未注冊用戶]#93樓[樓主] 回復 引用 查看 ??
@無suo事事TMD, 10年前就應該留言的現在才留言,呵呵,腦子有問題。
2010-07-19 22:45 | 吉日嘎拉 不僅權限管理? ?????
#94樓[樓主] 回復 引用 查看 ??
@無suo事事幾千年前發明的漢字,現在也在天天用,按照你這么說,漢字都不能用了?
不能寫了?
幾百年前的詩句,現在也不是照樣在寫? 照樣在說?
2010-07-19 22:46 | 吉日嘎拉 不僅權限管理? ?????
#95樓 回復 引用 ??
你還真是夠卡的,這樣去意義不是太大嗎?或者說你這樣的設計并不專業,一個軟件客戶用上十年不用維護費,那么本身說明這個軟件是成功的,難道收點維護費就可以賺大錢了?這個十年當中我相信以這個技術員的能力完全可以開發N套成熟的產品了,或者把現有的這套軟件包裝起來當做產品去賣,一套成熟的產品問題出的越少越好,最好都可以不用維護哦。 2010-07-19 22:52 | 藏金閣[未注冊用戶]#96樓 回復 引用 ??
誤刪就是沒事找事做,客戶不要求的話最好別管他 2010-07-20 00:14 | nannanaan[未注冊用戶]#97樓 回復 引用 查看 ??
堅持真刪除并且到現在還不改變的人 90%是學生或者小系統。一般所有數據都有status標記,表示數據狀態。如果真的需要刪除,會數據庫進行統一維護。 2010-07-20 01:00 | 辰? ?????
#98樓[樓主] 回復 引用 查看 ??
開拓一個大客戶有那么容易嗎?天下難道有做不完的管理系統?而且是有一定的油水的?好像沒那么容易吧?尋找客戶并不是那么容易的事情,若那么容易可以找到大客戶,我早就自己開公司去了。引用藏金閣:你還真是夠卡的,這樣去意義不是太大嗎?或者說你這樣的設計并不專業,一個軟件客戶用上十年不用維護費,那么本身說明這個軟件是成功的,難道收點維護費就可以賺大錢了?這個十年當中我相信以這個技術員的能力完全可以開發N套成熟的產品了,或者把現有的這套軟件包裝起來當做產品去賣,一套成熟的產品問題出的越少越好,最好都可以不用維護哦。
2010-07-20 08:40 | 吉日嘎拉 不僅權限管理? ?????
#99樓[樓主] 回復 引用 查看 ??
總算有人有共同語言了,哈哈,謝謝你的支持啊引用辰:
堅持真刪除并且到現在還不改變的人 90%是學生或者小系統。
一般所有數據都有status標記,表示數據狀態。如果真的需要刪除,會數據庫進行統一維護。
2010-07-20 08:40 | 吉日嘎拉 不僅權限管理? ?????
#100樓 回復 引用 查看 ??
呵呵,頂吉日兄一下,每次發貼都有這么多人光顧 2010-07-20 08:48 | 總想擁有自己的天空? ?????#101樓[樓主] 回復 引用 查看 ??
@總想擁有自己的天空稍微有點兒名人效益,呵呵。
2010-07-20 08:53 | 吉日嘎拉 不僅權限管理? ?????
#102樓 回復 引用 查看 ??
囧?你們啥玩意的系統啊?居然是直接刪除?還精悍?在學校的時候,老濕就教了數據不要用刪除,要保留每一個操作。這幾年做的系統,包括醫療的財務的倉儲的,CMS,oa,我都沒看過一個是刪除數據的。我很難想想,這樣的系統,居然能讓人用10年,不用維護,該不會是買去擺設吧 2010-07-20 08:54 | 貓崽? ?????#103樓 回復 引用 查看 ??
至于采用怎樣的刪除方式和數據類型,不能走極端。我們將兩種刪除稱為邏輯刪除和物理刪除,敏感數據采用邏輯刪除,非敏感數據則按照客戶的要求(客戶都有IT部門,甚至具有專家,我說的是真正的專家)
至于這個Flag是采用BIT還是其他數據類型,也要分場景,比如下面種情況就不能用BIT:
Membership表(PK:UserName + IsDeleted)
UserName
Password
IsDeleted
由于一個表里可能具有多個具有相同UserName的被刪除的記錄,所以不能使用具有兩態的BIT。我們都用代表當前事務(邏輯上的事務)的GUID表示(雖然可能在性能和存貯上就一些負面的影響,不過影響不大)
2010-07-20 08:54 | Artech? ?????
#104樓[樓主] 回復 引用 查看 ??
@Artech有水平的人,留言的水平都讓人佩服,說出來的話,聽著也舒服啊。
2010-07-20 09:29 | 吉日嘎拉 不僅權限管理? ?????
#105樓[樓主] 回復 引用 查看 ??
@Artech通過寫博客,與大家交流中提高了不少,這就是所謂的寫博客的好處,交流的好處吧。
2010-07-20 09:30 | 吉日嘎拉 不僅權限管理? ?????
#106樓 回復 引用 查看 ??
簡單實用 2010-07-20 09:35 | 東華一只球? ?????#107樓 回復 引用 查看 ??
如果表的數量大,這種方法就不適用。小數據量還是可以的。 2010-07-20 09:43 | 當耐特磚家? ?????#108樓 回復 引用 查看 ??
@當耐特磚家大表有大表的做法,可以根據Status建索引,然后根據索引建立表分區
又不是Access,只要沒有大的設計失誤,你放幾千萬條數據也是隨便跑
對于真正應該刪除的數據,在業務上應該建立定期整理、備份、核查、銷毀制度(可以參看檔案管理的做法) 2010-07-20 09:48 | 鈴蘭草? ?????
#109樓 回復 引用 ??
這個也放首頁。。。。吉日在沒什么好寫時可以休息一下嘛 2010-07-20 09:58 | selfer[未注冊用戶]#110樓[樓主] 回復 引用 查看 ??
@selfer那你來寫文章吧。
2010-07-20 10:00 | 吉日嘎拉 不僅權限管理? ?????
#111樓 回復 引用 ??
這個也改了一周,太高效的管理了吧,早就叫你不要只忽悠來忽悠去,不聽爸爸的話. 2010-07-20 13:02 | 吉日它爹[未注冊用戶]#112樓 回復 引用 查看 ??
樓主,好好學習一下面向對象的開發吧,你這個水平,把中國的軟件水平拉低了 2010-07-20 13:54 | 張忠偉? ?????#113樓 回復 引用 查看 ??
寫這樣的文章等于找罵!鳳姐型的人物,罵的多了,自然就上頭版了 2010-07-20 13:55 | 張忠偉? ?????
#114樓[樓主] 回復 引用 查看 ??
你這家伙,啥嘴巴?這個跟面向對象的開發都能扯上關系?我真想罵你,“你是豬啊?”啥都能跟面向對象的開發扯上關系,面向對象就不用刪除標志了?水平沒到家,別亂給人家扣帽子。引用張忠偉:樓主,好好學習一下面向對象的開發吧,你這個水平,把中國的軟件水平拉低了
2010-07-20 13:56 | 吉日嘎拉 不僅權限管理? ?????
#115樓 回復 引用 查看 ??
@小堆爸那確實啊,都通宵好幾天了,就調試觸發器了,而且數據量大的時候還丟數據。 2010-07-20 13:57 | 小小樂? ?????
#116樓[樓主] 回復 引用 查看 ??
TMD, 自己不好好寫文章,還跑到這樣的文章來來搗亂,你良心上有沒有考慮一下?你給博客園寫了幾篇文章分享了經驗?別人從你身上學到過什么?反過來還批評我這樣樂于分享,樂于交流的人,你的良心、良知都到哪里去了?怎么這么黑心腸啊?引用張忠偉:
寫這樣的文章等于找罵!
鳳姐型的人物,罵的多了,自然就上頭版了
2010-07-20 14:29 | 吉日嘎拉 不僅權限管理? ?????
#117樓[樓主] 回復 引用 查看 ??
程序在調試時,出發器也不好調試,而且有一定的未知性,莫名其妙性。出發器互相調用來調用去更讓人容易頭大,系統運行的時間長了,改動多了,接入的系統,功能也多了,更容易亂套了。
引用小小樂:
@小堆爸
那確實啊,都通宵好幾天了,就調試觸發器了,而且數據量大的時候還丟數據。
2010-07-20 14:30 | 吉日嘎拉 不僅權限管理? ?????
#118樓 回復 引用 查看 ??
@吉日嘎拉 不僅權限管理人懶得很,還沒寫過東西呢。
最近工作不順利,有點感慨,抽空總結一下 /(^o^)/~ 2010-07-20 14:45 | 真名士? ?????
#119樓 回復 引用 查看 ??
引用吉日嘎拉 不僅權限管理:不easy的都不會,太easy的又不精。
我就不信,說easy的人,自己的軟件里,是否都處理得想當好?
有勇氣敢說的,不知道有幾個人。
引用feijia:太easy了,這也可以寫文章?
這個xxx邏輯就是,你要說xx不好,你先做個超過xx給我看看!
這樣還不如關了評論了事! 2010-07-20 15:44 | 風中獨火? ?????
#120樓 回復 引用 查看 ??
引用吉日嘎拉 不僅權限管理:程序在調試時,出發器也不好調試,而且有一定的未知性,莫名其妙性。
出發器互相調用來調用去更讓人容易頭大,系統運行的時間長了,改動多了,接入的系統,功能也多了,更容易亂套了。
引用小小樂:
@小堆爸
那確實啊,都通宵好幾天了,就調試觸發器了,而且數據量大的時候還丟數據。
駕馭不了,不代表不好.
不會調試,不代表不能調試.
自己未知就老老實實承認,不是莫名其妙的.
你10年都不動的系統,運行50年來改動,加入功能么? 2010-07-20 15:47 | 風中獨火? ?????
#121樓 回復 引用 查看 ??
樓主無論怎么樓主的奉獻精神我還是很贊賞的無論任何事情努力去做了就好 2010-07-30 14:33 | 馬克華菲? ?????
#122樓 回復 引用 查看 ??
頂樓主,我覺得寫的蠻好的,受益匪淺 2010-07-30 15:36 | 夏末的美? ?????#123樓 回復 引用 查看 ??
呵呵. 這個標志是一定要的. 像你寫的系統, 支持oralce,access,mssql, mysql這些. 用刪除標志比較好. 然后把刪除的log寫到另一外表.如果單一系統定義為特定的MSSQL, 用觸發器也是可以.
總結
以上是生活随笔為你收集整理的防用户误删除,耗费一周时间把DeleteMark标志都加上来了,所有的删除操作从“物理删除”转为“逻辑删除”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 七夕常用的shell表白脚本
- 下一篇: [转]scite文本编辑器的说明