2013-06-03 20 views
5

我已經做了一些挖掘,找不到類似的問題,我找到了一些在'在線表單'中的一些較大的名字,如SurveyMonkey等有能力'部分儲蓄',但一直未能找到任何有關如何實現它的信息。部分保存表格(並在以後繼續)

我的情景: 表是後臺工作人員表示,工作人員正在完成對某事物的形式,他們遇到他們需要做一些調查才能完成,而不是強迫他們場現在就去查找它(開始查找所述信息的時間可能太晚了),我想提供將表單保存到當前狀態的功能,並且能夠在顧問有一次後再回憶該信息將繼續。

我可以製作表單,我可以製作部分保存按鈕,以後可以用PHP/MySQL回憶它沒有問題,但從SQL角度來看解決部分保存問題的最佳方法是什麼?

用戶將始終使用系統進行身份驗證,因此保存他們的信息以便日後恢復不是問題。

我發現this question哪些人向我尋找GarlicJS,但我希望工作人員能夠同時擁有多個表格,這樣他們就可以開始一個新的表格,而不必被迫先完成當前表格。

的,我怎麼能對付它的一些想法...

  • 我可以創造一個是0的部分完成和1完整表一個布爾標誌,但這意味着我的所有領域需要可空,這是一個設計缺陷嗎?
  • 將部分完整的表單保存到另一個表中,然後在完全提交併將其添加到主表後將其從此臨時存儲中移除。

所以我的問題是,什麼是最好的方法?任何人都有類似的經驗嗎?

回答

3

在我看來有一個標誌「完成」(真/假)的專欄是最好的和最簡單的想法。從技術角度來看,沒有任何問題。它不會以任何方式變壞。

如果存在邏輯問題,您可以 - 在更改此標誌之前 - 禁止NULL值。這可以通過PHP(驗證表單數據)或SQL(觸發器)完成。

這比擁有另一個表格要簡單得多,因爲您需要良好的管理系統,因此您可以確保自己在兩個表格中都沒有共同之處。擁有一張桌子內的所有東西都可以讓你SELECT所有記錄完成,全部沒有完成沒有這個神奇的JOINUNION的東西。

+3

我同意(+1),除非我會謹慎地驗證PHP中的數據約束。很多應用程序都有不止一種接收信息的方式(或將來),因此您可以在各種前端實現重複的約束邏輯。只要有可能,我認爲最好把這樣的邏輯放在服務器上。 –

+0

感謝您的輸入Voitcus(您也是@EdGibbs)。 – naththedeveloper

+0

@EdGibbs是的,所以我提到使用MySQL觸發器。在這種情況下(「後臺工作人員」)通過PHP甚至JavaScript驗證表單可能就足夠了 - 但通常你是完全正確的。 – Voitcus

相關問題