Database Design
Design efficient, maintainable database schemas with safe migration strategies.
Key Principles
-
Start from requirements: identify entities, attributes, and relationships first
-
Normalize for data integrity, denormalize selectively for read performance
-
Design indexes based on actual query patterns, not guesses
-
Migrations must be reversible and safe for zero-downtime deployments
-
Choose the right ORM — Prisma for type safety, Drizzle for SQL-close, TypeORM for enterprise
Quick Start Checklist
-
Identify entities and relationships from requirements
-
Design normalized schema (3NF minimum)
-
Add indexes for known query patterns
-
Plan migration strategy (up + down)
-
Choose ORM/query builder based on project needs
-
Set up seed data for development
References
Reference Description
schema-patterns.md Normalization, relationships, naming conventions
index-design.md Index types, composite indexes, partial indexes
migration-strategies.md Safe migrations, zero-downtime, rollback
query-optimization.md EXPLAIN, N+1 queries, join strategies
postgresql.md PostgreSQL-specific features and patterns
prisma-patterns.md Prisma schema, relations, transactions
tdd-patterns.md Test-first patterns for migrations, constraints, factories
review-checklist.md Database design review checklist (schema, indexes, integrity)