Overview
Database schema design fails when it's driven by application convenience rather than data integrity — denormalizing by default because joins seem complex, storing JSON blobs because the schema isn't yet known, and creating indexes reactively after performance problems appear rather than proactively based on query patterns. The schema is the foundation of every query's performance and every data consistency guarantee; design decisions made here are expensive to reverse.
The Database Schema Design Framework applies normalization correctly, designs indexes proactively based on documented query patterns, and makes denormalization decisions explicitly with their tradeoffs documented.