Мне нужно отслеживать
- CreatedByUserId
- ModifiedByUserId
- CreatedDateTime
- ModifiedDateTime
для большинства моих сущностей. Довольно стандартный.
Считаете ли вы, что лучше добавлять эти столбцы в каждую таблицу ... или просто иметь CreatedAuditEntryId
и ModifiedAuditEntryId
FK в таблицах, которые вы хотите проверять, которые указывают на существующие отдельные таблицы аудита, которые используются для отслеживания всех изменений.
AuditEntry выглядит так:
Существует очевидное влияние на производительность того, что для получения информации о Создании и Модификации нужно сделать два объединения ... но выгода в том, что я не поддерживаю состояние в двух разных местах, что походит на кардинальное правило номер один в моем дизайне книга.
UPDATE:
Просто чтобы прояснить, таблица AuditEntry содержит каждую модификацию каждой таблицы, независимо от нее. Вопрос здесь заключается в том, использовать ли эту таблицу для Созданной и Измененной информации через FK ... или просто добавить четыре столбца выше к каждой таблице, для которой я хочу получить информацию, чтобы избежать объединений.