Document stores (MongoDB, CouchDB) store JSON-like documents:
Design principles:
- Embed related data in single document
- Optimize for query patterns, not normalization
- Denormalize for read performance
When to embed:
- One-to-few relationships
- Data always accessed together
- Child data doesn't change independently
When to reference:
- One-to-many or many-to-many
- Data accessed independently
- Document would exceed size limits
Example: Embed order items in order document. Reference customer separately.