2016-11-07 53 views
0

我目前正在研究Symfony 2/Doctrine和MySQL作爲SGBD的PHP Web應用程序。在多步驟應用程序中保留數據完整性

我有多個步驟(約12),並在步驟結束時,我的一些數據存儲在我的SGBD,我去到下一道工序,等

用戶可以返回到與特定的步驟'返回'按鈕。如果他決定這樣做,我需要更新存儲的數據。例如,如果用戶在步驟6中並且他返回到步驟1,則需要清除一些列值。

我的SQL模型很輕,3個表,我有一個列狀態保持當前步驟(步驟1,步驟2等)。我不知道如何實現這一點。 也許在每次保存之前創建存儲過程並調用它是個不錯的主意。在我看來,存儲過程清理我的表(執行更新)以在給定步驟恢復。

任何想法?

Thankls

回答

1

這聽起來像一個應用程序設計問題。如果您正在使用框架,我的建議是遠離存儲過程並使用框架/ DMS與數據庫進行交互。

我的建議是使用狀態機。您需要: 1)定義所有的步驟 2)從一步定義的所有可能轉換到另一個

如果你告訴我們更多關於您的問題的背景下,我們也許能夠給你更好的建議。還有對於一些框架

爲symfony1.2 2狀態模式一些偉大的實現,我發現這些庫:

https://github.com/yohang/Finite

https://github.com/winzou/StateMachineBundle