注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

Superleistung的個人空間 http://m.mzhfr.cn/?249020 [收藏] [復制] [分享] [RSS]

日志

在數(shù)據(jù)表中添加輔助字段的構(gòu)想(一)

已有 2468 次閱讀2016-5-31 11:46 |個人分類:數(shù)據(jù)庫結(jié)構(gòu)| 數(shù)據(jù)庫備份, 數(shù)據(jù)表, 管理員, 記錄, 如何恢復

剛剛學習Access不久,在建立表的過程中發(fā)現(xiàn)一個問題:
如果允許用戶通過窗體直接從數(shù)據(jù)表中刪除數(shù)據(jù),可能不安全。會出現(xiàn)一種情況——即,用戶刪除了他權(quán)限上允許他刪,而事實上卻很重要的數(shù)據(jù)(出于誤刪,或是根本就是惡意刪除)。這時候就需要找回數(shù)據(jù),應(yīng)該做恢復數(shù)據(jù)及回滾覆蓋操作。這就有個如何安全恢復的問題。
假設(shè):恰好數(shù)據(jù)被刪除掉之后沒有立刻發(fā)現(xiàn),很多員工又繼續(xù)用了相當長一段時間,產(chǎn)生了大量數(shù)據(jù);而之前的數(shù)據(jù)庫備份又比較久遠,這就比較麻煩,以我現(xiàn)在的水平從Access底層是解決不了的。
受權(quán)限表的設(shè)計原理啟發(fā),我想到可以在數(shù)據(jù)表中添加輔助字段,形如"WantDelete"(是否刪除字段),"WantHide"(是否隱藏顯示字段),"IfActive"是否活動字段),"LastEdit"(上次編輯記錄的ID字段),"DeleteTime"(記錄編輯時間字段),"EditTime"(記錄編輯時間字段)來控制用戶端的操作:
我的構(gòu)想是:
1.新增:用戶的新增操作像以前一樣可以進行,新加的"WantDelete","WantHide"字段默認為否,"IfActive"默認為真,"LastEdit","DeleteTime"字段為空,"EditTime"字段為新增時間。
2.刪除:用戶的任何刪除操作都不是對表中數(shù)據(jù)做任何實際操作的,而是對"WantDelete""WantHide""IfActive"打鉤,程序?qū)?/span>"WantDelete""WantHide"已打鉤項目進行隱藏操作;在查詢的時候?qū)?/span>"IfActive"進行判斷,對不活動的記錄不進行操作;同時將刪除操作的時間記入"DeleteTime"字段。
3.編輯:編輯操作轉(zhuǎn)變?yōu)?/div>
->對原紀錄做Copy新增
->在Copy記錄中的"LastEdit"中寫入原記錄的ID
->在Copy記錄中"EditTime"記下當前時間
->將Copy記錄的"WantDelete","WantHide"字段設(shè)置為否,"IfActive"設(shè)置為真"DeleteTime"字段設(shè)為空
->在原記錄中,設(shè)置僅將"WantHide"值為真,"IfActive"設(shè)置為否"DeleteTime"字段記錄記下當前時間(不設(shè)置"WantDelete"為真是為了方便管理員區(qū)分編輯和刪除操作
->刷新顯示的時候,實際上是做的數(shù)據(jù)篩選,將"IfActive"設(shè)置為否的記錄隱藏掉。
4.查詢:設(shè)計查詢的時候,把"IfActive"為否的記錄篩掉不做操作,這樣就可以做到類似顯示真實刪除掉記錄后的效果。
      可以方便的在管理員界面進行管理,提取數(shù)據(jù)生成日志報表,并對真的需要刪掉的記錄由管理員進行最終的備份+刪除操作。

關(guān)于數(shù)據(jù)恢復的操作:
恢復數(shù)據(jù)操作的主體應(yīng)該是管理員,由管理員對隱藏掉的數(shù)據(jù)進行回溯查詢,找到數(shù)據(jù)記錄正確的數(shù)據(jù)條,修改其相應(yīng)的"WantDelete","WantHide","IfActive","LastEdit","DeleteTime","EditTime"字段的值即可。

后記:
后來想了一下,這個設(shè)計應(yīng)該能做的更好:其實應(yīng)該將記錄添加人,刪除人,編輯操作人作為單獨的字段獨立出來,記錄下做操作的員工ID對后續(xù)的管理會更有幫助。

先把這個實現(xiàn)以后調(diào)試一段時間看看效果,感覺這里面應(yīng)該還可以深入,放在以后講。

評論 (0 個評論)

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 08:40 , Processed in 0.055845 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部