2013-10-25 44 views
1

我有一個商業列表網站。我目前正在爲用戶建立一個界面來登錄和更新他們的列表。PHP/MySQL - 編輯批准系統

我想實現的功能如下:

  1. 用戶編輯列表,並提交
  2. 的編輯發送到管理員在此期間批准
  3. 現有的上市仍然在網站上
  4. 管理評論的編輯和審批

現在通常之前糾正任何錯誤像這樣的事情可以通過在數據庫中存儲一個「重複」行來完成,並將一個標誌設置爲「掛起」。

但是,如果可能的話,我想嘗試一種不同的方法,因爲列表數據存儲在多個表中,其中包含一個包含多個類別選擇的表。

所以理想情況下,我寧願不創建額外的數據庫記錄。有沒有更好的選擇我可以使用?

+1

也許只是一個鏈接表與原始記錄ID和更新的數據序列化和存儲? – Mattt

+1

你可以設計你的維基表,以便關係存儲爲序列化數組。它需要額外的處理,但它會保持在一張桌子上。 –

回答

0

實際上有兩種不同的方法。

  1. 使用的數據庫(相同的表,或者一些「掛起的更改」幾乎相同的結構與原有的表中),儘管這種或那種方式它創造的記錄。

  2. 不要使用數據庫中的所有,但一些中間存儲(鍵/值存儲,消息隊列,內存緩存,電子郵件,只是一些文件;凡是想到的;))

隨着選項2你可以輕鬆完成,因爲你的問題已經提到了2個評論者:創建一個數據結構並序列化這個結構,並將其存儲在任何地方,直到管理員「批准」數據並在數據庫中更新它。

乍一看,第二個選項當然會更快實現,儘管在數據庫中實現它可以使您能夠使用當前或狀態標誌「回滾」更改。其次,你想保持所有(相關)數據靠近在一起,以保持可維護性