發新話題
打印

表單能否時光回溯?

表單能否時光回溯?

目前卡到的設計問題.想想還是提出來問大家有沒有慣常的解決法

一份大表單.從起頭的員工要經手主管又跑別的部門等等之類……
流程是固定的.一份表單中間可能會指派給兩個部門一起動工
我先前的做法是:經手一個,就是一個table一個model。到時再用關連把它組起來合體成長長一串─照需求要的─大表單。
但是接下來 想要加上類似版本控制,以防中間哪個員工還主管手殘、還是事後後悔要重發單子。聽說以前MIS都要進DB砍資料按rollback,但是這次我想,了不起直接在平台上刪資料就好了吧?只是還是想問,是否有類似的RollBack設計模式還是邏輯?

TOP

just a list or tree即可解決,不過每次都要new才行,而非update,而取現行版本用last即可
like A has many B,B為各版本history列表

不然就是用類似table的方式還存,有新版本都塞到最後去,一樣取last即可,回溯代回上個版本就好了
(Plurk) 人因夢想而偉大,如果沒有信仰,則將一無所有,持續往殉道的路邁進,獻祭著自己的靈魂,走著最極端的路;而那迷霧的後面,會是地獄,也是天堂
self.attributes #=> [惡搞之魂,貓化身,怪咖吸鐵石,邪道程式設計師,動漫宅,蘿莉控,惡趣味,Geek,H=F^3]
[82,117,98,121,32,79,110,32,82,97,105,108,115,32,105,115,32,77,121,32,76,105,102,101].map{|l|l.chr}.to_s

TOP

第一個版本應該是最佳解了..
Think Different
[code]
[73, 32, 108, 111, 118, 101, 32, 121, 111, 117, 32, 115, 111, 32, 109, 117, 99, 104, 33].map{|c| c.chr}.join
[/code]

TOP

A~.....對了,你的問題不就是"以防中間哪個員工還主管手殘、還是事後後悔要重發單子"

==w==" 那就回收桶機制唄,加個boolean的is_deleted or deleted_at(date)即可,加上default scope過濾掉即可,動資料庫是evil way啊啊啊啊
當然也可以覆寫destroy於model,加上過期標註判定之類的(超過那期限必砍)有的沒的
(Plurk) 人因夢想而偉大,如果沒有信仰,則將一無所有,持續往殉道的路邁進,獻祭著自己的靈魂,走著最極端的路;而那迷霧的後面,會是地獄,也是天堂
self.attributes #=> [惡搞之魂,貓化身,怪咖吸鐵石,邪道程式設計師,動漫宅,蘿莉控,惡趣味,Geek,H=F^3]
[82,117,98,121,32,79,110,32,82,97,105,108,115,32,105,115,32,77,121,32,76,105,102,101].map{|l|l.chr}.to_s

TOP

感謝 看大家的留言心理踏實多了= v = 那就繼續照著做了OvO\

TOP

發新話題