2012-02-19 84 views
1

我有一個網站,用戶可以下訂單。訂單在準備交付之前經歷了各個階段。我希望能夠隨時記錄與訂單有關的任何事情。如何使用php將訂單歷史存儲在數據庫中?

這裏是我想什麼它看一個例子:

(12年2月13日下午4:41):由客戶發起訂單
(12年2月13日4: 41pm):令 發送給經理審批
(12年2月13日下午04:43):批准 經理
(12年2月14日下午6時03分)訂單:
順序是由編輯用戶:
                                                            市: '洛杉磯 洛杉磯' 到 '聖迭戈'
(2/14/12 6:09 pm): o被編輯刻申由 管理員:
                                                            電子郵件: '[email protected]' 來'[email protected]'
(12年2月15日 下午8時41分):準備好了交貨

什麼是我來存儲這種類型的訂單歷史記錄的最好的方法?我在DB中創建了一個名爲歷史記錄的表格,我希望將歷史存儲爲與每個訂單有關的歷史記錄。我的列是history_id(primary),order_id(foreign),添加日期(timestamp)和history_message(varchar)。

理想情況下,我想爲訂購流程中的每個步驟創建編號代碼,例如訂單批准,訂單編輯或訂單交付,然後只爲該行分配編號而不是實際的歷史消息,即更多的字符。我覺得這樣我不會過分誇大我的數據庫。這種方法的問題在於我想記錄已更改的實際數據(正如您可以在示例中的用戶和管理員的編輯中看到的那樣),並且我不確定如果沒有保存每行的完整歷史消息。

爲我的情況在數據庫中存儲訂單歷史的最佳方式是什麼?

回答

0

您可以使用觸發器來更新子表以跟蹤每個訂單狀態。

基本上使用插入觸發器或在更新後通過插入查詢執行手動插入,您可以將所需的數據從訂單表複製到新表中,我們可以調用軌道訂單。跟蹤表將跟蹤所有的變化,並以當前狀態記錄在主表中。

+0

感謝您的回覆Teez!我想我可能會理解你的建議,但我不太確定實施。你能告訴我你將如何設想新的表格以及可能的代碼樣本嗎? – zeckdude 2012-02-19 22:26:39

相關問題