10

オブジェクトの追加/編集/削除の監査証跡を実装する必要があります。オブジェクトの定義などに ORM (XPO) を使用しています。トリガーされる監査証跡オブジェクトを実装しました。

  1. 節約中
  2. 削除中

基本オブジェクトのうち、フィールドの変更について、Audit-AuditTrail (Mast-Det) テーブルに変更を保存します。などと呼ばれるいくつかのメソッド サービスを使用します。

OOP コードに監査証跡をどのように実装しますか? あなたの洞察を共有してください?柄などは?ベストプラクティスなど? もう1つのことは、単体テストを実行するときに監査を無効にする方法です。監査する必要はありませんが、ベースオブジェクトにはコードがあるためです。

オブジェクトへの変更 (編集/追加/削除) と、監査が必要なフィールドの変更

4

7 に答える 7

8

可能であれば、データベーストリガーがここに移動するための推奨される方法です。

ただし、最近、クライアント側のコードでこれを行う必要があり、編集用に開いたときにオブジェクトのディープ(値)コピーを作成するクラスを作成し、保存時に2つのオブジェクトを比較しました(ToString()を使用)のみ)そして監査テーブルに変更を書き込みました。

編集:監査可能と見なしたい各プロパティに[Audit]属性があり、リフレクションを使用してそれらを見つけ、監査対象のオブジェクトにメソッドを非固有にしました。

于 2008-09-29T11:42:28.550 に答える
3

ORM にシームレスに適合するかどうかはわかりませんが、ERP アプリケーションにポイントインタイムデータベース設計を使用しており、本当にお勧めします。このアーキテクチャから、履歴と監査、およびその他の利点が自動的に得られます。

于 2008-09-29T16:17:42.303 に答える
1

AOP(aspectJ実装)を使用して、同様のソリューションを実装しました。この特定のポイントを使用してキャプチャし、特定の操作を実行できます。

これは、必要に応じてプラグインおよびプラグオフできます。

本当にアプリ層でやりたいのなら、これをお勧めします。

それが役に立てば幸い..

于 2008-11-30T14:13:20.173 に答える
1

データベースとの対話に使用する一連の DAO (データ アクセス オブジェクト) を作成する場合、私は DB 側よりも SW 側から来ています。次に、追跡する必要がある DAO のそれぞれの関数に監査機能を挿入します。

データベース トリガー ソリューションも実行可能です。機能を配置する場所 (DB またはコード) によって異なります。

DAO レイヤーを作成する ORM (オブジェクト リレーショナル マッピング) ツールはたくさんあります。

于 2008-09-29T12:25:09.587 に答える
1

セッションのインターセプターを使用して、Hibernate(別のORM)でこれを行いました。そうすれば、監査コードはコードから分離されます。

于 2008-12-23T05:40:23.003 に答える
0

私はこれがあなたの質問に答えないことを知っていますが、記録のために、私はデータベースでこのタイプの監査ロジックを処理することを好みます。

于 2008-09-29T11:18:35.050 に答える