MVC Web アプリ用のデータベースの設計を開始しようとしています。データベースに加えられたすべての変更を追跡するために、'changes' または 'events' と呼ばれるテーブルを使用することを検討しています。テーブル名、レコード ID、変更を行ったユーザー、タイムスタンプ、およびそれが作成または変更イベントであったかどうかのフィールドがあります。
私の質問は、各テーブルに「作成者」、「作成者」、「変更者」、「変更者」のフィールドを持つことに比べて、これが貧弱な設計慣行であるかどうかです。親の Model クラスでは、すべての変更を記録する保存前関数を使用することを考えていました。多くのレコードが一度に更新された場合、変更を適切に保存する機能を取得するのが難しい可能性があるという落とし穴があることがわかります。