多くのテーブルと何千ものレコードを含む Access データベースを使用しています。誰かがデータ、行、またはセルのみを変更した場合、どの特定の行またはセルが変更されたかを知る方法はありますか? Access データベース、任意のプロパティ、または任意のトリガーを使用する必要がありますか?
1 に答える
私は数年前にMSSQL DBで同様の問題を抱えていました.ACCESS(MDB)とSQL(MDF)データベースの両方がこれを本質的にサポートしていないことを思い出したようです. 私が間違っていなければ、次の原則を採用する必要があります。
1) トランザクション データは決して編集しないでください。変更された値を含む新しいレコードを含む履歴レコードのみを参照してください。3つの角度から撮りました:
- 更新に関連する最新のレコードの record_id を保持する PrecursorRecId という列がありました。
- 別の列が保持され、関連するすべてのレコードが、AuditTxnContext テーブルのキー Id 列である共通の値によってリンクされる Context_ID が保持されました。
- レコードの TxnDate (かなり論理的)
2) マスター データ レコードも変更されませんでしたが、各レコードにはEffectiveFromDateとEffectiveToDateがあり、NULLのEffectiveToDateを持つレコードは現在と見なされていました。テーブルの機密性に応じて、MaterData レコードの作成には、監査エントリ レコードが付随していました。ここでも、EffectiveFromDate スタンプと自動的に一致しない RecordCreatedDateTime があります。
これは先に進むのに役立つかもしれませんが、既存のデータを支援することはあまりありません. また、あなたが何に取り組んでいるのかもよくわからないので、私の意見はかなり一般的です。それが何らかの形で役立つことを願っています。私が間違っている場合は、誰の意見も歓迎します。これが私たちの挑戦への取り組み方です。
まだ対処している場合は、もう少し教えてください。そうでない場合は、質問を閉じてください。
乾杯
マック