首先,讓我指出我讀過關於數據庫版本控制的所有文章,但這不完全是我正在尋找的東西,但我不能提出更好的標題(這裏「全部」這個詞是關鍵)。SQL Server中的完整數據庫版本
我有一個'編譯好的數據庫',它包含一個公共交通路線規劃器的所有類型的優化記錄和統計信息,它是通過另一個數據庫中的程序生成的。編譯的數據庫在活動時不會更改,用戶活動監視和緩存除外。有些表格包含2-3萬條記錄。
一旦輸入數據庫發生變化,此編譯的數據庫就會完全更新。因此,任何新的數據庫版本都不以任何方式與任何其他以前的版本交互。但是我希望單獨存儲每個版本,並且如果用戶需要,可以從程序中使用它(將它想像爲公共交通地圖的歷史記錄)。
唯一合理的方法是簡單地爲每個版本創建不同的物理數據庫,這既不硬也不錯,但是我問你是否知道任何機制對完整數據庫進行版本控制(而不僅僅是數據庫中的部分數據,比如其他職位都在問),目的是使整個事情更加合乎邏輯和乾淨。
我正在使用SQL Server 2012,但可能在服務器上它將是2008 R2。
如果您想將版本化數據存儲在同一個數據庫中(並且在每個表中添加VersionID列),請將其忽略掉,因爲在一個有2-300,000條記錄的表上,有10個版本(這些版本會在少於3個月)將意味着300多萬條記錄,其中只有30萬條將被使用,所以,絕對不會!
VersionID列不會很好,因爲推測新版本可能有不同的模式。我可能會像你最初的預感一樣使用單獨的數據庫。 – 2012-08-15 21:00:43
同意模式更改的評論。但爲什麼你認爲有一個版本列(因爲大小)是一個問題? – 2012-08-15 21:10:46
僅僅是逆向的,如果模式在數據的不同「版本」之間是相同的,爲什麼不把它們都放在同一個數據庫中呢?你可以使用表分區。哎呀......即使他們有不同的模式,他們也可能都在同一個數據庫中,只要有不同的表名即可激活你的辣椒。對您的數據庫模型有什麼異議? – 2012-08-15 21:28:59