2012-03-24 28 views
1

如果我有一個名爲Person(ID,Name,Version)的表,我希望使用戶輸入對現有人員的更新來創建新版本的行。這樣一個人可以採取和做出改變。與Hg等人的版本控制方式完全相同。這個想法是,如果一個人A進入x,那麼人B可以編輯它並擁有x.1的本地副本,將所有的美妙融合回x中。如何爲一個行的分佈式更改控制構建表

難道是最好地安排它像: Person(ID,Name,Version),並使用某種杜威系統的修訂 或 Person(ID,Name,Version, Creator),並使用一個版本的本地用戶 或某種 Person(ID,Name,Person_Id, Creator)

或者是否有更好的主意用於以行爲中心的版本控制?

最終結果在UI看起來像:

您的列表中有X

某甲已經更新了X [忽略],[用A的變化更新]

人B已更新X [忽略],[與B的變化更新]

+0

我建議你看看每次編輯插入一行。這是避免鎖定的更好方法,並且工作更快。有兩個表 - 一個標題和一個「更新」,你只能插入和顯示最新版本 – IMHO 2012-03-26 00:23:00

回答

0

,你可以在開始和結束日期到行:

PersonID StartDt  EndDt  UpdatedBy Other columns 
1   2012-01-01 2012-02-01 Fred 
1   2012-02-01 2012-03-01 Alice 
1   2012-03-01    Thomas 

每次編輯都會與進行更改的人員一起記錄。您還可以看到該行在哪個期間處於活動狀態。要搜索當前行,可以使用EndDt is null的條件。

相關問題