需求:
在日常開發過程中,經常會遇到這樣的需求,需要儲存草稿或者改變資料以後需要審核,這個時候就會出現一下幾種場景:
1.待審核資料和審核通過資料同時存在
2.審核不通的資料和審核通過的資料同時存在
狀態流轉如上圖,這個時候需要思考如下問題:
1.存一條資料,這麼解決上面的問題?
先說說我這兩天的總結,存一條資料,是可以解決上面的問題,但是適合單錶操作,設計如下:
欄位中新增乙個快照字段,用來儲存當前這條資料的快照,用json格式
1.先建立一條資料,為待審核資料,並更新當前這條資料的快照字段(為了以後查詢方便)
2.審核通過,快照資料覆蓋當前資料,然後,刪除快照資料
3.審核失敗,有兩種場景,第一種是審核通過以後,再修改,這個時候審核失敗,不能影響已審核的資料,只對快照資料進行操作
第二種場景建立以後,審核失敗,這個時候可以修改當前資料和快照資料
2.存多條資料,狀態流轉,效果和上面一樣,但是資料是多條,這樣做適合查詢和有多個表的資料
1.先建立一條資料,為待審核狀態
2.審核通過,複製待審核資料,新建一條,狀態為審核通過,原有待審核狀態資料可以刪除,也可以改為審核歷史資料
3.審核通過以後修改,新建一條,改為待審核
4.審核失敗,把待審核資料改為審核失敗
5.審核失敗修改,把資料改為待審核
資料審核,通過以上兩種方式,基本可以解決,剩下的就是具體的問題具體分析了
eas庫存狀態調整單不能反審核 審核與反審核
在k 3系統中,提供單據審核和反審核功能。如果本單據在 多級審核管理 中不設定進行多級審核,則審核和反審核指的都是業務審核 如果該張單據要進行多級審核,則審核和反審核包括業務審核和形式審核等其它審核與反審核。對於庫存單據,審核是雙重確認的第二重確認。該功能的實現非常簡單,即在當前單據介面 新增並儲存...
php與設計模式 狀態模式
當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把複雜的判斷邏輯簡化。demo created by phpstorm 狀態介面 inte ce istat...
http無狀態設計與Cookie和Session
無狀態指的是任意乙個web請求必須完全與其他請求隔離,當請求端提出請求時,請求本身包含了相應端為相應這一請求所需的全部資訊。1.被呼叫者不儲存引數,因為無需考慮引數邏輯 由使用者來儲存狀態,進行狀態邏輯設計 http是無狀態設計的,一些sdk的設計也可以是無狀態的。2.而一些需求是需要有互動的,需要...