CQRS & Event Sourcing
Separate the write model (commands) from the read model (queries) — each shaped for its workload. Optionally store every state change as an immutable event (event sourcing).
CQRS — Command Query Responsibility Segregation — splits a system's write side from its read side, on the observation that the two have fundamentally different needs. Writes care about validation, business rules, and consistency; reads care about fast, flexible querying in whatever shape the UI needs. Forcing one model to serve both leads to compromises: a normalised schema great for writes makes complex reads slow, while a denormalised one optimised for reads is awkward to keep consistent on write. CQRS lets each side use a model and even a data store tuned for its job.
A bank statement versus your balance: the balance (read model) is convenient, but it's derived from the immutable ledger of transactions (the event log) that you can always replay.