2015-05-29 74 views
-2

在這個問題中,我想知道什麼是在sql中控制數據版本的最佳實踐。我們正在使用關係數據庫(Sybase SAP Sql Anywhere)。問題是,我們不知道我們軟件的哪一層應該實現版本控制系統。我們希望編寫一個通用系統,以便版本控制適用於所有類型的數據,每種類型都有少量工作(類型:聯繫人,約會...)。在sql和c中進行數據版本控制的最佳實踐#

以下是我們計算出的選項: 1.使用實體框架並計算兩個模型的差異。然後保存的差異數據庫 2.使用觸發器和comapre新老數據,並將它們保存在單獨的表 3.使用程序,這證明了變化,也將它們保存在一個單獨的表

我知道這是一個非常一般問題,但也許有人對我們的問題有一個好主意和解決方案。

編輯

重要:我想創建數據本身的版本,而不是SQL架構或一些SQL代碼。

EDIT2

允許使用下面的簡單的例子。我有一個微小的接觸表(不是我們真實的聯繫表):

CREATE TABLE Contact 
(
    "GUID" Uniqueidentifier NOT NULL UNIQUE, 
    "ContactId" BIGINT NOT NULL Identity(1,1), 
    "Version" INTEGER NOT NULL, 
    "FirstName" VARCHAR(100), 
    "LastName" VARCHAR(200), 
    "Address" VARCHAR(400), 
    PRIMARY KEY (ContactId, Version) 
); 

沒有,每次有人更改了聯繫人對象的時候,我要救它的一個新版本。但我正在尋找一個通用的解決方案。這必須針對每種類型實施。

謝謝!

+0

在** **相關列表=== >>>前五題四個結合似乎討論過這個問題。他們中沒有一個包含有用的信息?你問的問題非常廣泛,似乎更像是一個討論問題,而不是一個特定問題。 –

+0

不,這個問題是關於結構和sql代碼的。我想要版本化我的數據本身。 – BendEg

+0

的資料?我相信這樣做被稱爲*做備份*。 :-) –

回答

1

作爲一個生活和呼吸數據庫源代碼控制的人(DBmaestro團隊的一部分),我可以推薦兩種方法的組合,具體取決於您如何運行增量。

  1. 使用觸發器,你應該保存你需要部署中的所有信息,如果它通過使用緩慢變化維度或整個表格內容
  2. 使用的過程,分析差異並知道生成相關的增量腳本
1

我們有同樣的問題,並試圖通過存儲版本和分支ID與我們想要遵循的每個實體來解決它。 在另一張表中,我們使用它們的前任版本ID存儲版本,以便我們可以跟蹤分支在哪裏相遇。 另外,我們有一個版本號的審計跟蹤。

我不知道這是否有你需要(ed)相同的元素,以及你是否從你的問題和你最後的編輯提前​​。

感謝您的建議,以獨特的ID和版本號