0

SAAS ベースのアプリケーションを開発しています。要件の 1 つは、データベース テーブルのすべての変更を記録することです。つまり、日付/時刻ベースのバージョンのデータを作成します。クライアントは、任意のバージョンのデータに戻すことができる必要があります。

データベースにはほぼ 30 のテーブルがあり、データ挿入の頻度は、一括インポートによって 1 日あたり 80,000 レコードの追加/更新です。ただし、クライアントは GUI を使用してフォームからデータを挿入することもできます (一括インポート以外)。

この要件を実装するための戦略を作成する前に、これを実装する方法についてコメント/提案をお待ちしております。

余談ですが、このブログ投稿を確認したところ、非常に良い出発点であることがわかりましたが、過去のデータを復元する方法についてはまだ疑問があります.

データベース スナップショットは有望なソリューションですが、先ほど述べたように、これは SAAS ベースのアプリケーションであり、複数のクライアント データを 1 つのデータベースに保存しており、スナップショットは他のクライアントのデータも復元します。

この要件を実行する方法に関する戦略/計画を提案してください。

4

1 に答える 1

0

JPA/Hibernate を使用してデータを取得する予定がある場合は、Envers を試すことができます。

Envers は、データベース エンティティのバージョンを維持するための JBoss オープンソース プロジェクトです。テーブル全体の特定の列に@Audited注釈を付けて、監査履歴の追跡を開始できます。通常、すべての監査データを _AUDIT という名前のテーブルに格納します。また、履歴データを照会するための API も提供します。

詳細については、http: //www.jboss.org/envers を参照してください。

于 2012-03-13T04:20:03.480 に答える