# Database Patterns

> This skill should be used for database schema design, indexes, query optimization, migrations, SQL, PostgreSQL, MySQL, ORM patterns, data modeling, database relationships Use when this capability is needed.

- Skill: `tomevault-io/database-patterns-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/database-patterns-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/database-patterns-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/database-patterns-2

---


# Database Patterns

Database design and optimization patterns.

## Schema Design

- Use appropriate data types
- Add NOT NULL where applicable
- Use foreign keys for relationships
- Index frequently queried columns

## Indexing

```sql
-- Single column
CREATE INDEX idx_users_email ON users(email);

-- Composite (order matters)
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at);
```

## Query Optimization

### N+1 Problem

```sql
-- Bad: N+1 queries
SELECT * FROM users;
SELECT * FROM orders WHERE user_id = 1;
SELECT * FROM orders WHERE user_id = 2;
...

-- Good: JOIN or eager load
SELECT u.*, o.* FROM users u
LEFT JOIN orders o ON o.user_id = u.id;
```

## Migrations

- One migration per change
- Up and down migrations
- Never modify deployed migrations
- Test rollback

## Connection Pooling

- Reuse connections
- Set appropriate pool size
- Handle connection timeouts

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/zate) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

