Журнал аудита - это, в основном, хронологический список событий, которые произошли, кто выполнил эти события и что это были за события.
Я думаю, что плоский вид будет лучше, так как его легко заказать и запросить. Поэтому я больше склоняюсь к вашему варианту № 2 / № 3.
Включите такие вещи, как тип транзакции, время, идентификатор пользователя, описание того, что изменилось, и другую соответствующую информацию, связанную с вашим продуктом.
Вы также можете добавлять вещи в свой продукт с течением времени, и вам не нужно будет постоянно изменять модуль журнала аудита.