2017-06-15 77 views
0

我有一個網站,獲得批准的用戶可以更新,插入和刪除表中的數據。但是,所有最終修改必須在原始表格中「生效」之前獲得批准。我希望原始表中的數據根據​​具體情況進行更新。從數據庫方面去解決這個問題的最好方法是什麼?它會成爲觸發器嗎?程序?交易?MYSQL更新待批准

有沒有辦法在主表上觸發一個觸發器,在進行更新時,它會出現在觸發器表中而不影響活動表?

目前,我的觸發器看起來像這樣。它可以工作,但它正在更新兩個表。

DELIMITER // 
CREATE TRIGGER TEST_UPDATE 
BEFORE UPDATE ON test for each row 
BEGIN 
INSERT INTO test_changes(PERSONID, LASTNAME, FIRSTNAME, ADDRESS, CITY, TIME) 
VALUES(NEW.PERSONID, NEW.LASTNAME, NEW.FIRSTNAME, NEW.ADDRESS, NEW.CITY, NEW.TIME); 
END 
// 

我假設實際的批准/拒絕過程將不得不通過網站上的管理頁面完成。從我目前閱讀的內容來看,MYSQL無法提示用戶輸入。

謝謝!

+1

爲什麼不只是有一個活動的列,只有當管理員通過活動列批准/否決時才顯示? – chris85

+0

如果我理解你的建議是正確的,我認爲這不會起作用。我們擁有的數據是樹形結構格式,每個格式都有一個來自圖形數據庫的特定URI。我們希望將具有更改的單個URI拉入待處理的批准表,然後在批准後將其放回。 這有道理嗎?假設你的建議不適用於樹結構數據,我是否正確? 謝謝! –

+0

我不明白爲什麼你的應用程序不會使用數據,除非批准的列具有正確的值。不要將其標記爲應該顯示。 – chris85

回答

0

在回顧了這個問題之後,我意識到我在尋求一些可以直接與MySQL結合使用的東西,至少不是我所知。我最終做的是創建一個掛起的更改表,然後將其顯示在HTML表中。然後「管理員」進入並批准或拒絕更改,然後將更改發送到相應的表。

這可能是通過使用一個活動/非活動列,然後基於列值顯示行,如上所述,但可以更簡單地使用適當的數據創建兩個表。