Hermes Wiki

SchemaDesign Normalization

How tables, columns, and relationships are structured — normal forms, foreign keys, when to denormalize for read performance.

Why we need this / what value this brings

A well-normalized schema prevents data anomalies (update/insert/delete anomalies); a deliberately denormalized one trades that safety for read speed.

When to use this

Normalize by default; denormalize only a specific, measured read path that's provably slow because of excessive joins.

How to use or implement this

Model relationships with proper foreign keys first; only flatten/duplicate data once profiling shows a join is the actual bottleneck.

Research questions

  • Where in the current schema has denormalization already happened (intentionally or not), and is it paying for itself?

Empty folder — drop notes, links, and findings here as you research.

Hermes Wiki