我目前正在开发一个使用Symfony 2 / Doctrine和MySQL作为SGBD的PHP Web应用程序。
我有多个步骤(大约12个),在步骤结束时,我将一些数据存储在我的SGBD中,然后我会进入下一步,等等。
用户可以使用“返回”按钮返回特定步骤。如果他决定这样做,我需要更新我存储的数据。例如,如果用户在步骤6中并且他返回到步骤1,我需要清除一些列值。
我的SQL模型很轻,有3个表,我有一个列状态,以保持当前步骤(步骤1,步骤2等)。我不知道如何实现这一点。 也许创建存储过程并在每次保存之前调用它是个好主意。在我看来,存储过程会清理我的表(执行更新)以在给定的步骤中恢复。
有什么想法吗?
Thankls
答案 0 :(得分:1)
这听起来像应用程序设计问题。如果您正在使用框架,我的建议是远离存储过程并使用框架/ DMS与数据库进行交互。
我的建议是使用状态机。你需要: 1)定义所有步骤 2)定义从一个步骤到另一个步骤的所有可能的转换
如果您告诉我们有关您问题背景的更多信息,我们可能会为您提供更好的建议。某些框架的状态模式有一些很棒的实现
对于symfony 2,我找到了这些库: