SQLサーバーに監査テーブルがあります。これは、高レベルの各ユーザアクションに対するエントリを記録することである。レコードを更新する、新しいレコードを追加する、レコードを削除するなどSQLテーブルに格納するための簡単な監査データをシリアル化するにはどうすればよいですか?
私は、すべての変更(.NETではデータベース内のトリガーではない)を検出して記録するメカニズムを備えています。フィールド名、前の値、新しい値を記録します。私はフィールドの変更を同じテーブルに保存したい(別のテーブルではない、つまりこれに対して本格的な正規化されたリレーショナルデザインを望んでいない)ので、ブロブフィールドを持つフィールドレベルの監査データを記録したいと考えています。
私はオブジェクトグラフ(基本的にはこれらのフィールド変更オブジェクトの一覧)を取り込み、それをシリアル化してシリアル化バージョンテーブルに
後で、ユーザーが変更を表示したいときに、フィールドを逆シリアル化してフィールド変更のコレクションを再構築できます。
.NET 3.5で使用するには、最高のフレームワーク/シリアル化フォーマットは何でしょうか?私はサイズについてあまり気にしないし、人間が読めるものである必要はありません。オブジェクトをシリアル化するために
BinaryFormatterは間違いなく長期保存にとって危険です。これを永久に破る多くの方法があります... –