2012-03-24 7 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 AがX [無視]、[Aの変更を更新]

者を更新しました

人を持っていますB更新したX [無視]、[Bの変更を更新]行に、開始日と終了日の

+0

編集ごとに行を挿入することを検討することをおすすめします。これは、ロックを回避するためのより良いアプローチであり、より速く動作します。 2つのテーブルがあります.1つのヘッダーと1つの「更新」があり、最新のバージョンのみを挿入して表示します – IMHO

答えて

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を使用します。

関連する問題