2010-05-05 33 views
1

我剛剛接管了一個客戶端項目,數據庫模式是一團糟。我想重命名一個字段的負載使它成爲一個關係數據庫。MYSQL事件來更新另一個數據庫表

但是,這樣做將是一個艱苦的過程,因爲他們也有一個運行它的API。所以這個想法是創建一個新的數據庫,並開始重寫代碼來使用它。但我需要一種方法在這個過程中保持這些表同步。

您是否同意我應該使用MYSQL EVENT來不斷更新插入/更新的新表&刪除?

或者你能否提出一個更好的方法?

希望你能指教!!

感謝任何輸入我得到

+0

如果您將不得不重寫API,那麼以觸發器開始可能是有意義的,但是隨後開始對舊錶和新表進行兩次分離(插入,刪除等)。這將允許您並行運行代碼並測試它是否按預期工作。 您可能還想考慮編寫與現有系統分開的新代碼和數據庫模式。然後計劃轉換數據並切換到新系統。 – 2010-05-05 20:41:22

+0

嗨史蒂夫,這正是要做的。我們希望重新編寫API,然後使用API​​重建網站。我認爲觸發基於時間。所以我爲什麼問。 – Lee 2010-05-05 20:50:32

+0

沒有觸發器不是基於時間而是行爲(即插入,刪除等)在這裏看到http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html – 2010-05-05 21:20:33

回答

1

我在我的項目有同樣的問題。我和你一樣做了同樣的事情 - 編寫新的數據庫。我們開發了新的數據庫和適配代碼,在完成這些工作後,我們製作了一個遷移腳本(小應用程序),用於從舊數據庫遷移到新數據庫。

希望這給你一些想法...

+0

謝謝,但這不會可能。這將是一個緩慢的進展,因爲我們重新創建數據庫,然後通過本網站上的所有查詢,只是重新啓動將是危險的。我們需要一種逐漸實現的方式。 – Lee 2010-05-05 20:47:52

0

我有同樣的問題,以及,通過在用戶輸入(在一次基本上保存到這兩個數據庫的複製點數據的方式去,因爲原始模式缺乏所有必需的信息)。經過幾個月的開發,客戶意識到他將轉向一個全新的數據庫,並認爲它太冒險(我同意他的觀點)。

因此,我建議您清楚地向客戶說明您將實施新的數據庫,而不是對當前的數據庫進行迭代重構。

相關問題