關於如何記錄資料更改記錄的兩種建表方式

2022-06-12 01:48:07 字數 824 閱讀 3087

當時要做的乙個專案要包含乙個許可權管理功能,以為該系統中的所有人分配許可權。而且這個許可權管理的需求是可以把許可權接近無限的下發(我感覺現實中是不會無限下發的(。・∀・)ノ),這些都先不講。因為有許可權管理就涉及到使用者分組的變動,許可權的使用等,但是這些操作都是應該要記錄下來的。於是有了兩種方案。

1.通過一張單獨的事件記錄表來記錄事件:

iduid

eventid

etime

優點:這種方法比較直觀,比較容易能想到。

操作也不是很麻煩

缺點:同時要操作多張表(比如要將乙個人的許可權刪除,那麼在許可權表中要將其對應的記錄刪除,在記錄表中要對這個事件進行記錄)。

需要列車所有操作的可能(這好像也不是啥缺點(。^▽^))。

2.通過增加時間欄位來記錄事件

比如有一張使用者-分組的表:

iduid

gid如果是按照第一種方法,當乙個人被分入某個許可權組時,則向這張表新增相應記錄,還要向記錄表新增紀錄。但是如果多了兩個字段,starttime(起始時間),endtime(結束時間),那麼就不一樣了。

idstarttime

endtime

uidgid

當乙個使用者被分配到某分組時,記錄這個時間放在starttime中,當乙個使用者被踢出分組是記錄踢出時間放到endtime中。這樣的話,只要檢測endtime中是否有值就可以判斷使用者的狀態了,這樣這錶的作用就不僅是記錄分組情況了,而且也保留記錄了。

優點:需要建的表少了。

當有操作時不需要刪除記錄,只需記錄時間,操作的表也少了。

缺點:如果某張表有頻繁的操作則很容易造成資料冗餘。

Table的兩種處理方法記錄

簡單記錄一下,方便以後參考 基於jquery實現 一種是滾輪,一種是翻頁 滾輪的 實現 ip位址 埠例項型別 慢操作總數 slowline ms 連線詳情 let rowstr 檢視 翻頁的 實現 慢操作發生時刻 慢操作指令 慢操作次數 慢操作平均耗時 ms 初始化例項 以免出現寬度的問題 func...

關於生產退稅計算的系統修改記錄

關於生產退稅計算的系統修改記錄 1 商品明細 此介面中增加user scbacktaxrate 生產退增值稅率用於記錄生產退稅率,清空 退稅率 也就是原有退稅率字段 2 合同商品明細增加user scbacktaxrate 生產退增值稅率,user scbacktax 生產退增值稅額 3 合同明細t...

關於sap的字段和物件修改記錄的查詢

sap的字段和物件的修改都會儲存舊值,資料儲存在cdhdr和cdpos表中,對於提取舊值你可以採用兩種方法 1 使用sap的標準函式changedocument read headers 和changedocument read positions 2 使用select語句直接從表中讀取。直接使用s...