私は追跡する必要があります
- CreatedByUserId
- ModifiedByUserId
- 作成日時
- 変更日時
私のエンティティのほとんど。かなり標準的。
これらの列をすべてのテーブルに追加する方が良いと思いますか...または、すべての変更を追跡するために使用される既存の個別の監査テーブルを指す、監査するテーブルにCreatedAuditEntryId
とFK を配置するだけのほうがよいと思いますか?ModifiedAuditEntryId
AuditEntry は次のようになります。
- ID
- ユーザーID
- 日付時刻
Created 情報と Modified 情報を取得するために 2 つの結合を行わなければならないという明らかなパフォーマンスへの影響があります...しかし、利点は、2 つの異なる場所で状態を維持していないことです。
アップデート:
明確にするために、AuditEntry テーブルには、すべてのテーブルに対するすべての変更が含まれています。ここでの問題は、そのテーブルを FK を介して作成および変更された情報に利用するかどうか、または結合を避けるために、情報が必要な各テーブルに上記の 4 つの列を追加するかどうかです。