Database Design
> **Learn to THINK, not copy SQL patterns.** **Read ONLY files relevant to the request!** Check the content map, find what you need. File
Database Design
Learn to THINK, not copy SQL patterns.
🎯 Selective Reading Rule
Read ONLY files relevant to the request! Check the content map, find what you need.
File
Description
When to Read
database-selection.md
PostgreSQL vs Neon vs Turso vs SQLite
Choosing database
orm-selection.md
Drizzle vs Prisma vs Kysely
Choosing ORM
schema-design.md
Normalization, PKs, relationships
Designing schema
indexing.md
Index types, composite indexes
Performance tuning
optimization.md
N+1, EXPLAIN ANALYZE
Query optimization
migrations.md
Safe migrations, serverless DBs
Schema changes
⚠️ Core Principle
- ASK user for database preferences when unclear
- Choose database/ORM based on CONTEXT
- Don't default to PostgreSQL for everything
Decision Checklist
Before designing schema:
- Asked user about database preference?
- Chosen database for THIS context?
- Considered deployment environment?
- Planned index strategy?
- Defined relationship types?
Anti-Patterns
❌ Default to PostgreSQL for simple apps (SQLite may suffice) ❌ Skip indexing ❌ Use SELECT * in production ❌ Store JSON when structured data is better ❌ Ignore N+1 queries