データベースにさらにいくつかの列を追加するだけです。
- ステータス : レコードの現在のステータス (承認待ち、承認済み、却下など)
- メーカー : ユーザー名またはID
- Checker : ユーザー名または ID
- チェッカーの承認/却下時間
または、このようなテーブルが多数ある場合は、作成者/チェッカー ワークフローに必要であり、別のテーブルを追加して、他のすべてのレコードをこのテーブルに参照することができます。
Windowsワークフロー基盤もあなたのために働くかもしれませんが、個人的には使いにくいと感じています
recored のリビジョンが必要な場合は、さらに列が必要です。リビジョン番号や IsLastRevision など。
データベースへのアクセスとレコードの変更に何を使用しているのかわかりません。OR/M を使用している場合は、Update をオーバーライドして、すべての保存でリビジョンを実行できます。例えば
void Update(Entity e )
{
Entity n = new Entity();
// Create a copy of e ( With AutoMapper for example or manually )
e.Current = true;
e.RevisionNumber += 1;
Update(e);
Insert(n);
}