2015-11-08 51 views
0

我不確定這是一個很好的「SO」風格問題,但不知道還有其他問題。用於db安裝腳本的SQL或sql/PHP

我正在開發一個小項目,並且正在建立一定數量的預先確定數據的數據庫。

這些數據需要一定數量的「預處理」才能將數據存入數據庫,並使數據庫處於合理狀態(試圖達到第三範式)。

TLDR:我可以使用哪些參數來保留純SQL中的所有內容,而不是使用PHP附帶的功能。

完整的信息:

有一件事是困擾我,我可以做直SQL這項工作(我們在這種情況下使用MySQL),我已經developped了一些相當不錯的小的腳本來提取,分類和清理。這被發現得到了我的同事們的極大贊同。

我想我自己的想法但是,如果我會更好地運行一些清理通過PHP,因爲它會使代碼不那麼'冗長'〜可以很容易地滑入例如,在PHP中循環。

我能想到很多爲什麼保持純SQL設置的原因可能會更好。例如允許數據庫移動到另一臺機器,並準備好,而不需要另一臺機器需要一個php解釋器,或需要連接到一個系統。

但是我正在努力想出任何其他好的論點,我敢肯定這個問題會出現,並且希望在殺人論證的時候做好準備。

感謝您的輸入。

大衛

回答

0

這很難不知道該項目的細節說,誰可能會在稍後進行的工作,以及他們的技能是什麼。要記住的一件事是將來你可能會改變你的數據庫。如果是這樣,那麼我會用PHP編寫所有代碼,並讓一個框架把它轉換成適合你的數據庫的SQL。

但是,如果更改編程語言的可能性更大,那麼請堅持使用SQL腳本。如果您打算使用持續集成引擎來運行腳本,而該引擎更容易實現,那麼SQL或PHP?

如果您需要對SQL腳本進行某種版本控制,這可能比直接SQL更容易在PHP中完成,但我從未嘗試過後者。

+0

我沒有想過遷移到另一個數據庫問題。當然,版本控制可以用於任何文本基礎語言,我沒有想過將這個腳本放在版本控制中。 – DaveM

+0

版本控制將適用於任何文件。但是,正確編寫,你可以控制你的數據庫腳本是否運行。這比從sql更容易。 – Nate0047

+0

使用版本控制來確定腳本是否已運行。有趣的想法,但簡單的日誌記錄會有什麼問題?而且這些腳本很可能在虛擬機內部運行,所以可能只會運行幾次,然後機器可能會被刪除,從而開始一個全新的系統。感謝您付出努力回答。 – DaveM