これは特定のシナリオです。私が達成する必要があるのはこれです:
- アプリケーションの UI の外にある特定のテーブルで誰かが 1 つ以上の行を挿入または削除した場合、テーブルが変更されたことを検出する必要があります。
- トリガーを使用しないでください。
これはそれがする必要がないことです:
- 削除されたか挿入されたかを区別します。
- 誰が改ざんしたか、どこで改ざんされたかを検出します。
- ユーザーが同時に同じ数の挿入と削除を行った場合。これは技術的には変更としてカウントできるため、挿入や削除として検出する必要はありません。
これが私たちが仕事をすることができると考えているものです: 監視対象のテーブル名、そこに含まれる行数、および検証キーを格納するテーブルを作成し、 を呼び出しましょうintegrity_tbl
。挿入または削除の後、行数と検証キーを更新します。検証キーが有効な場合にのみ行数を更新します。比較が失敗するたびに検証キーを無効にします。データの整合性の検証が必要な場合は、テーブル内の行を数えて と比較しintegrity_tbl
ます。
これは良いアプローチだと思いますか、それとも別の方法を試す必要がありますか?
これには Delphi と Firebird を使用しています。尋ねられたように、IBX を使用してデータベースに接続しています。しかし、ロジックは問題であり、データベースにアクセスする方法ではありません。