複数のテーブルに対して実装できる「簡単で簡単な」ソリューションは、次のようなトラッキングテーブルを持つことです。
Track_Table
==================================================
id_track as primary key
id_table as name of the table which has been updated
id_primaryKey as the record identifier (the PK of the updated record)
changeType, being either DEL or UPDATE
changeDate, as dateTime value
fieldName, as text
oldValue, as text or memo
newValue, as text or memo
更新を行ったユーザーを特定する必要がある場合は、
userId
あなたのテーブルに...
その後、選択されたフォームのbeforeUpdateおよびafterUpdateイベントで呼び出される汎用の「更新前」および「更新後関数」を作成できます。 beforeUpdate関数は変数に古い値を格納し、afterUpdate関数は欠落したデータを取り込み、トラックテーブルに新しいレコードを挿入します。
対応するテーブル名とフィールド名を見つける方法を見つける必要があります。ビューまたはフィールドエイリアスを使用してフォームにデータを表示している場合、これは難しい場合があります。
もちろん、従うすべてのテーブルには、レコードレベルで変更を追跡できるように、主キーが必要です。複数のフィールドに設定されたPKは確実に問題になります....
oldValuesとnewValuesは、テキストまたはメモフィールドに保存できるようにテキストとして変換する必要があります