An audit trail is basically a chronological list of events that occurred, who performed these events, and what events were.
I think a flat look would be better since it can be easily ordered and requested. Therefore, I am more inclined to your option number 2 / number 3.
Include things like transaction type, time, user ID, description of what has changed, and other information related to you related to your product.
Over time, you can also add things to your product, and you do not need to constantly change your audit log module.
Brian R. bondy
source share