2013-05-16 30 views
0

我正在使用PHP(Codeigniter)和MySQL構建一個電子商務網站。從SQL服務器到MySQL的每日更新

產品表有一個庫存字段,需要每天更新(可能每天多次)。這些更新的來源是本地SQL Server表(由SAP B1使用)。

我應該說我無法知道哪些項目發生了變化,所以我必須瀏覽整個產品表(數萬行)。

這是我想我會做到這一點:

  1. 發行計劃查詢的SQL Server上,創建的 的項目代碼和庫存水平的文本文件。 (完成)
  2. 問題排定ftp命令上傳文本文件至網絡服務器(完成)
  3. 使用笨功能,創建一個數組解析上傳文本文件,用於批量更新(沒有做過,但似乎很容易)。

我的問題是:

  1. 我該怎麼在這裏正確的方向?有沒有更好的方法來做到這一點?我在這裏面冒性能問題嗎? (我的意思是,這項工作是否會干擾我網站的性能?需要多長時間才能運行幾千條線?)
  2. 如何安排codeigniter功能(上述第3項)?只需在任何本地機器上使用任何調度器,通過它的url(mywebsite.com/my_update_function)調用我的php函數?
+0

我想在記錄發生變化時,SQL Server表中可能會有至少一個存檔,並且當您在MySQL數據庫中截斷整個表時,用戶將無法看到任何產品,這將會令人尷尬爲一個電子商務網站。 所以我的建議是在你的服務器上創建一個PHP代碼,用你的SQL服務器上次更新的記錄創建一個臨時表(在MySQL數據庫的設置表中保留一個錶行,以便檢查SQL服務器)。 並刪除您的MySQL選項卡中的記錄,甚至你可以更新它們。 –

+0

並在php文件中添加一個調度器。我不確定代碼Igniter,但你可以單獨做,不需要有這個接口。 –

回答

0

我們可以直接在您的SAP B1表上使用觸發器來解決您的問題。它可以解決您的問題。 但是,SAP B1存在問題。如果我們在系統表或SAP B1的UDT上使用觸發器,則將SAP B1升級到更高級別時會出現問題。 照顧並繼續。