アプリケーション内での監査ログの最適な方法を決定しようとしています。ログの主な理由は、一連のイベント (変更) を報告することです。
オブジェクトの階層があり、後でその階層のいずれかの部分で何かが変更されたときにレポートを作成する必要があります。
次の 3 つのオプションがあると思います。
- テーブルごとにログがあるため、オブジェクトの階層を照合してから、レポートのビューを作成します。
- 階層をフラット化し、テーブルを非正規化して、レポート作成を容易にします - シンプルな select ステートメント。
- ログ テーブルを 1 つ用意し、各変更のレコードを作成して、レポート作成を困難にしますが、変更に対する柔軟性を高めます。
私は現在、オプション1に傾いています。