Business Software 2024-05-20 · 10 min

Data Modelling for Operations, Not Reports

Most databases are designed for the dashboard. They should be designed for the operation — the write path is where integrity lives.

SYSTEM BLUEPRINT // DATA-MODELLING-FOR-OPERATIONS FIG. 01
WRITE PATH: THE OPERATIONAL CONTRACT Event Constraints & Validation NOT NULL, CHECK (qty > 0), ENUM types Foreign Keys & Transaction Boundaries ACID guarantees: No orphaned line items Append-Only Audit Ledgers Immutable record of every state transition Makes Illegal Business States Mathematically Impossible in Database READ PATH: DISPOSABLE PROJECTIONS Materialized Analytics Views Pre-computed aggregated sums & metrics Fast REST & GraphQL Caches Redis caches & edge CDN queries Dashboard & Reporting UI Easily changed, rebuilt or replaced Read models can be thrown away Because write integrity is permanent

A dashboard reads. An operation writes. When you model for the dashboard, you optimise for SELECT. When you model for the operation, you optimise for INSERT, UPDATE, DELETE — and the constraints that keep the business rules true.

The write path is the contract

Every write is a business event: an order placed, a shipment received, an invoice matched. The schema must make illegal states unrepresentable. Foreign keys, check constraints, unique indexes, triggers — these are not "database features", they are the encoded rules of your operation.

Common mistakes

  • Storing derived data instead of computing it (leads to drift).
  • Soft deletes without a clear policy (leads to ghost records).
  • Polymorphic associations without a discriminant (leads to query chaos).
  • No audit trail on financial or compliance-relevant tables.

How we model

We start with the workflow, not the ER diagram. Every state transition in the workflow becomes a constraint or a transition table in the model. The read models (views, materialised views, API shapes) are derived afterwards — they are disposable, the write model is not.