Для хранения записей аудита в целях аудита я пытался записать, какие данные изменились.
В прошлом я делал два разных способа, но сейчас я создаю новую систему и пытаюсь выяснить, какую использовать:
Имеют таблицы AuditEntry и AuditEntryChange. Каждое измененное значение поля помещается в таблицу AuditEntryChange и имеет FK для AuditEntry.
Хранить измененные поля и значения в XML в таблице AuditEntry в одном поле.
Что из вышеперечисленного будет более эффективным для сохранения и запроса? (включая влияние сериализации / десериализации при использовании XML). А что займет меньше места?
Кроме того, рекомендуется ли использовать GUID или int PK для таблиц аудита? Я могу придумать причины для каждого.