0

ユーザー情報を保存するデータベースを作成していますが、ユーザーに加えられた変更をログに記録する必要があります。

これは最終的に一種の「タイムライン」につながるため、日付/時刻の要素が重要です。

この質問では、次の例を使用します。

#ID - int
memName - string
memBio - string
memStatusString - string

さて、私のしかし、それをそのようなテーブルにリンクすることです:

ID - int
#memID - int
dateNameChanged - DateTime
dateBioChanged - DateTime
dateStatusStringChanged - DateTime

これは情報を記録するための良い方法ですか?後で簡単にリストできるように、別のテーブルで実行したいと思います。

また、ログの日付は変更後にのみ取得されるため、同じテーブルにログを配置することはありません。ユーザーが変更しない場合は、スペースの無駄になります。

結論は;

これを行うためのより良い方法はありますか?

更新:情報が不足していることをお詫び申し上げます。私はSQLServer2008、asp net c#3.5-4を使用しています(データベース構造atmのみを実行しています)。

また、メンバーには、tblMemberInformation、tblClanInformation、tblMemberGameRankなどのさまざまなテーブルがあります。

各テーブルの変更された各データ(確認のため)は、対応する日付とともにログファイルに保存する必要があります。

4

2 に答える 2

1

使用しているSQLServerのバージョンが指定されていないため、最新バージョンを想定します。

SQL Server 2008+には監査が組み込まれています:

SQL Serverデータベースエンジンのインスタンスまたは個々のデータベースの監査には、データベースエンジンで発生するイベントの追跡とログ記録が含まれます。SQL Server監査では、サーバー監査を作成できます。これには、サーバーレベルのイベントのサーバー監査仕様と、データベースレベルのイベントのデータベース監査仕様を含めることができます。監査されたイベントは、イベントログまたは監査ファイルに書き込むことができます。

于 2012-08-04T11:08:50.627 に答える
1

SQL 監査では、特定のオブジェクトに対する特定の操作を監査できます。たとえば、1 つのテーブルで UPDATE のみを監査できます。http://www.ultimatewindowssecurity.com/sqlserver/auditpolicy/auditactiongroups/database-level_audit_actions.aspxを参照してください。SQL Audit はこのニーズに合わないかもしれませんが、それがその機能です。

于 2012-08-06T20:34:24.093 に答える