当店では、データベースを設計するときに、通常、各テーブルの監査属性(LastUpdateUser、LastUpdateDateなど)を含めます。これは一般的な方法ですが、特にエンティティフレームワークなどのツールを使用して、他のテーブルから「継承」するテーブルがある場合、これがますます問題になることに気付きました。
たとえば、テーブルCustomersとEmployeesがあり、それらのテーブルにテーブルPeopleへの外部キーがある場合、継承を確立するときにエンティティ/クラスモデルで、監査フィールドの名前を変更する必要があります。これらは両方に存在するためです。テーブル。おそらく、それらはPersonLastUpdatedUserとPersonLastUpdatedDateになる必要がありますが、Employeesからのものは単にLastUpdatedUserとLastUpdatedDateのままです。
継承用のテーブルを設計するとき、そのような監査フィールドを両方のテーブルに配置しますか、それとも親テーブルにそれらを配置し、子テーブルで属性が変更されるたびに親テーブルを更新しますか?