0

一部のフィールドが更新される可能性のあるテーブルはほとんどありません。

さまざまな分野の変化の歴史を残したいただし、異なるフィールドには異なるタイプがありますが、「監査」テーブルに多くの異なる列を作成したくありません。

したがって、シリアライゼーションを使用する必要がありますが (PHP でよく使用していました)、Java/MySQL でどれほど効率的かはわかりません (データ フレームワークなどは使用していません)。連載なら何に?XML/JSON?

私は2つのテーブルを考えました:

  • AuditEntityProperty (ID (PK)、EntityId (FK)、PropertyName、From、To、DateTime、Username)
  • AuditEntity (エンティティ ID (PK)、エンティティ名)

From/To は、対処方法がわからない現在の問題です。 私は XML に傾倒しており、両方のデータ型として TEXT を使用しています。アイデア?

4

1 に答える 1

1

XMLをお勧めします。

私のテーブル構造:

Audit_id、操作、preImage、postImage、userId、datetime、entityName、timestamp

次に、これをAuditBeanにマップして、JPAを使用し、オプションがあれば休止状態にし、Spring AOPを使用して、テーブル構造が更新されたときに監査テーブルを更新します。

preImage と postImage を持つ 1 つのテーブルの挿入。

XML 生成については、XStream が最も使いやすいものの 1 つだと思います。

監査する必要があるすべてのテーブルは、XMLConvertable (XStream のクラス エイリアスやその他のエイリアス フィールドを簡単に取得できるようにするため) および監査可能 (AOP コードがデータベースから preImage を抽出できるようにするため) としてマークします。

于 2011-12-05T07:00:27.753 に答える