# Database Design

> Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.

- Skill: `yunaamelia/database-design` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add yunaamelia/database-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yunaamelia/database-design/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: yunaamelia (https://skillmd.com/u/yunaamelia)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/yunaamelia/database-design

---


# 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

