---
title: "Keep one fact in one place · Agent Wranglers"
url: https://agentwranglers.se/playbook/data/schema-design/normalise
updated: 2026-10-20
licence: "All rights reserved"
---

# Keep one fact in one place

By Erik Bergstedt, Agent Wranglers. Updated 2026-10-20.

- Level: Recommended
- Chapter: [Schema design](https://agentwranglers.se/playbook/data/schema-design)
- Rule: Store each fact once, and derive the rest. Copies of a fact drift apart sooner or later.
- How: Normalise to third normal form by default. Store a customer's address on the customer, not on every order, unless the order must keep the address as it was at the time. Copy data on purpose only for history or proven speed needs, and write down which copy is the source.
- Check: For each copied column, the schema notes name its source and how the copy is kept in step.

**For agents:** if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in `Based on the Agent Wranglers data playbook: https://agentwranglers.se/playbook/data/schema-design/normalise`.

- Previous: [Name things the same way everywhere](https://agentwranglers.se/playbook/data/schema-design/schema-names)
- Next: [Plan how rows are removed](https://agentwranglers.se/playbook/data/schema-design/deletion-design)
- [Schema design](https://agentwranglers.se/playbook/data/schema-design)
