如何为一行的分布式变更控制构造表

时间:2012-03-24 22:45:12

标签: sql row

如果我有一个名为Person(ID,Name,Version)的表,我想让它为用户输入现有人的更新创建一个新版本的行。这样一个人可以采取并做出改变。与Hg等人进行版本控制的方式完全相同。这个想法是,如果一个人A输入x,B人就可以编辑它并拥有x.1的本地副本,并且具有合并回x的所有美感。

最好将其结构如下: Person(ID,Name,Version),并使用某种Dewey系统进行修订 要么 Person(ID,Name,Version, Creator),并为用户使用本地版本 或某种 Person(ID,Name,Person_Id, Creator)

或者对于以行为中心的版本控制有更好的想法吗?

UI中的最终结果如下:

  

列表中有x

     

A人已更新x [忽略],[使用A的更改进行更新]

     

B人已更新x [忽略],[更新B更改]

1 个答案:

答案 0 :(得分: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

的条件