2017-04-06 38 views
0

我們正在開發一款新產品,它需要使用輕量級數據庫。然而,我和我的同事們就數據庫創建的慣例進行了辯論。他們的想法是我們應該簡單地構建數據庫的概要,然後不加區別地添加和刪除表格和內容,直到看起來像我們想要的。我告訴他們這樣做的正確方法是製作一個類似如下格式的腳本:數據庫創建公約

拖放數據庫;

創建表;

插入初始數據;

我說這比隨機更改表更好。每次要更新數據庫的設計時,只應對腳本進行更改並重新運行該腳本。他們說這是毫無意義的,而且他們的方式更快(由於數據庫很小,所以它的權重有點小,但我仍然認爲這是一種糟糕的做事方式)。他們最擔心的是我放棄了數據庫,他們很不高興我將刪除他們爲了測試目的而放入的隨機數據。那時我澄清說,您將插入作爲腳本的一部分來充當初始數據。他們仍然不服氣。他們在所有的時間都用數據庫告訴我,他們從來沒有聽說過這樣的事情。事實是,我們都需要更多的數據庫經驗,但我確信這是開發腳本和創建數據庫的正確方法。有沒有人有任何明確解釋這種方法可以支持我的在線資源?如果我對此有錯,請隨時糾正我。

回答

1

嗯,我不知道你的項目的細節,但我認爲它是非常安全的,假設你是對的,這是很多很好的理由。

  1. 如果您沒有指示數據庫結構的腳本,將如何創建它的新實例?當您部署到生產環境時會發生什麼情況,或者它會被意外刪除或服務器崩潰?使用腳本意味着您不必記住所有設置的細節(即使對於小型數據庫也不太可能)。

  2. 從長遠來看,它的速度更快。我不瞭解你,但在我的項目中,我不斷地爲網上新的數據庫提供單元測試,新分支和部署等功能。如果每次需要永久重新創建數據庫。是的,需要額外的時間來維護一個數據庫腳本,但它幾乎總是會節省您在項目的整個生命週期中的使用時間小小的

  3. 這並不難。我不知道你在使用什麼數據庫,但其中許多數據庫支持將你的模式導出爲DDL腳本。你可以從這個開始,並從他們進行修改。無需全部輸入。如果你的數據庫不能這樣做,那麼值得快速搜索一下,看看與你的數據庫一起工作的第三方工具是否能爲你做到這一點。

確保您的腳本檢查到您的源代碼管理系統。它與源代碼的其他任何部分一樣重要。

我覺得像你提到的數據播種腳本是一個好主意。但請將其作爲數據庫創建腳本的單獨腳本保存。這樣你可以開發種子腳本,單元測試種子腳本,生產種子腳本等。

+0

謝謝你的回覆。我們使用一個名爲H2的java庫,這是我們所限制的。我們正在研究一個沒有互聯網接入的封閉網絡,因此我們無法下載任何內容。我們放置的任何新軟件都需要批准和簽名(可能需要幾個月)。所以我們基本上堅持我們所擁有的。所以現在我們僅限於輸入所有內容。除了我們自己建造的東西外,我們沒有任何工具。我已經搜索了數據庫創建慣例,但大多數網站和視頻都有自動執行的工具。再次謝謝你。 – JMC0352

+0

明白了。有趣的環境。我仍然建議使用腳本,即使你必須輸入它們。一旦你獲得了語法,它不應該太糟糕。 – d512