К основному содержанию
скилл CX Codex

database-design · moizibnyousaf — скилл для Claude Code: схемы, миграции, индексы

Скилл по проектированию схем, миграциям и оптимизации запросов для PostgreSQL, MySQL и NoSQL. Пригодится, когда агент пишет SQL.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add MoizIbnYousaf/ai-agent-skills --skill database-design -a claude-code
Открыть на GitHub

Что делает database-design

Скилл задаёт агенту рабочие шаблоны для баз данных: нормализация до 3NF, денормализация под чтение, индексы B-tree, составные, частичные, GIN для JSONB и покрывающие. Внутри — готовые примеры на SQL, которые агент подставляет в ваш проект вместо общих рассуждений.

Отдельный блок про миграции. Есть шаблон безопасной миграции в транзакции с CREATE INDEX CONCURRENTLY и бэкфиллом батчами, а ещё схема zero-downtime из пяти шагов: добавить колонку, писать в обе, перенести данные, читать из новой, удалить старую. Для разбора запросов — EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) и что смотреть в выводе.

Скилл советует тестировать миграции на данных продакшн-размера до деплоя. Это разумно: ALTER TABLE с блокировкой на большой таблице кладёт сервис, а откатить уже нечего. UUID для публичных идентификаторов, created_at и updated_at, мягкое удаление через deleted_at — всё это в рекомендациях.

Какие задачи решает

  • спроектировать схему users и addresses без дублей
  • написать миграцию, которая не блокирует таблицу
  • найти недостающие индексы по статистике запросов
  • переписать пагинацию с OFFSET на keyset
  • добавить ограничения целостности: внешние ключи, CHECK, EXCLUDE

Примеры запросов агенту

  • Спроектируй схему для заказов и позиций заказа, покажи индексы
  • Напиши безопасную миграцию: добавить колонку status в users и заполнить её батчами
  • Разбери этот запрос через EXPLAIN ANALYZE и предложи, что оптимизировать

Как установить database-design

1Через Skills CLI (Vercel)

npx skills add MoizIbnYousaf/ai-agent-skills --skill database-design -a claude-code

2Вручную: положить файлы

~/.claude/skills/database-design/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/database-design/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора6

backend-development Скилл для проектирования REST API, схем баз данных и микросервисной архитектуры. Пригодится, когда агент пишет бэкенд и нужно, чтобы он держался одних конвенций. CX Codex +1 868установок code-documentation Скилл задаёт структуру README, API-справки, комментариев и архитектурных заметок, чтобы агент писал документацию по одному шаблону. CX Codex +1 563установок best-practices Превращает сырые запросы к кодинг-агенту в промпты с критериями проверки, ограничениями и файловыми путями. Пригодится для точной постановки задач. CX Codex +1 528установок llm-application-dev Скилл для разработки приложений на больших языковых моделях: промпты, RAG-конвейер, вызовы API и обработка ошибок. CX Codex +1 462установок ask-questions-if-underspecified Скилл заставляет агента задать 1–5 уточняющих вопросов до начала работы, чтобы не переделывать её потом. Вызывается вручную. CX Codex +1 376установок

Другие версии database-design

Похожие

database-indexing-strategy aj-geddes Скилл помогает проектировать индексы: выбирает тип, собирает составные и частичные, подсказывает по обслуживанию. Пригодится, когда запросы тормозят. CX Codex +1 486установок database-optimizer davila7 Скилл для Claude, который разбирает узкие места базы: планы выполнения, индексы, N+1, кеш и партиционирование. Пригодится, когда запросы тормозят, а непонятно почему. 286установок sql-pro https://github.com/Jeffallan Оптимизирует медленные SQL-запросы, проектирует схемы баз данных и устраняет проблемы производительности. Пригодится при разборе планов EXPLAIN и миграции диалектов. CX Codex +1 6 400установок postgresql-database-engineering manutej Помогает проектировать схемы, выбирать индексы и оптимизировать медленные запросы в PostgreSQL. Пригодится при партиционировании больших таблиц и настройке репликации. CX Codex +1 1 800установок database-management-patterns manutej Скилл-справочник по работе с PostgreSQL и MongoDB: проектирование схем, индексы, транзакции, репликация и шардирование. CX Codex +1 466установок database-performance-debugging aj-geddes Скилл помогает найти медленные SQL-запросы и разобрать их планы выполнения. Пригодится, когда приложение тормозит или база упирается в CPU. CX Codex +1 493установок

Рядом в теме «Данные и базы»

Все скиллы по теме «Данные и базы» →

Вопросы о database-design

Как установить database-design в Claude?

Выполните npx skills add MoizIbnYousaf/ai-agent-skills --skill database-design -a claude-code. Скилл появится в ~/.claude/skills/database-design/SKILL.md.

Что делает database-design?

Даёт агенту шаблоны проектирования схем, написания миграций и оптимизации запросов для PostgreSQL, MySQL и NoSQL. Агент опирается на них, когда вы просите изменить структуру базы или ускорить запрос.

Для каких баз подходит скилл?

Для PostgreSQL, MySQL и NoSQL. Примеры в основном на SQL, включая CREATE INDEX CONCURRENTLY, EXPLAIN ANALYZE и ограничение EXCLUDE USING gist.

Исходный текст

SKILL.md · MIT
---
name: database-design
description: Database schema design, optimization, and migration patterns for PostgreSQL, MySQL, and NoSQL databases. Use for designing schemas, writing migrations, or optimizing queries.
source: wshobson/agents
license: MIT
version: 4.1.0
---

# Database Design

## Schema Design Principles

### Normalization Guidelines
```sql
-- 1NF: Atomic values, no repeating groups
-- 2NF: No partial dependencies on composite keys
-- 3NF: No transitive dependencies

-- Users table (normalized)
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email VARCHAR(255) UNIQUE NOT NULL,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Addresses table (separate entity)
CREATE TABLE addresses (
  id SERIAL PRIMARY KEY,
  user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
  street VARCHAR(255),
  city VARCHAR(100),
  country VARCHAR(100),
  is_primary BOOLEAN DEFAULT false
);
```

### Denormalization for Performance
```sql
-- When read performance matters more than write consistency
CREATE TABLE order_summaries (
  id SERIAL PRIMARY KEY,
  order_id INTEGER REFERENCES orders(id),
  customer_name VARCHAR(255),  -- Denormalized from customers
  total_amount DECIMAL(10,2),
  item_count INTEGER,
  last_updated TIMESTAMPTZ DEFAULT NOW()
);
```

## Index Design

### Common Index Patterns
```sql
-- B-tree (default) for equality and range queries
CREATE INDEX idx_users_email ON users(email);

-- Composite index (order matters!)
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);

-- Partial index for specific conditions
CREATE INDEX idx_active_users ON users(email) WHERE deleted_at IS NULL;

-- GIN index for array/JSONB columns
CREATE INDEX idx_posts_tags ON posts USING GIN(tags);

-- Covering index (includes additional columns)
CREATE INDEX idx_orders_covering ON orders(user_id) INCLUDE (total, status);
```

### Index Analysis
```sql
-- Check index usage
SELECT
  schemaname, tablename, indexname,
  idx_scan, idx_tup_read, idx_tup_fetch
FROM pg_stat_user_indexes
ORDER BY idx_scan DESC;

-- Find missing indexes
SELECT
  relname, seq_scan, seq_tup_read,
  idx_scan, idx_tup_fetch
FROM pg_stat_user_tables
WHERE seq_scan > idx_scan
ORDER BY seq_tup_read DESC;
```

## Migration Patterns

### Safe Migration Template
```sql
-- Always use transactions
BEGIN;

-- Add column with default (non-blocking in PG 11+)
ALTER TABLE users ADD COLUMN status VARCHAR(20) DEFAULT 'active';

-- Create index concurrently (doesn't lock table)
CREATE INDEX CONCURRENTLY idx_users_status ON users(status);

-- Backfill data in batches
UPDATE users SET status = 'active' WHERE status IS NULL AND id BETWEEN 1 AND 10000;

COMMIT;
```

### Zero-Downtime Migrations
```
1. Add new column (nullable)
2. Deploy code that writes to both columns
3. Backfill old data
4. Deploy code that reads from new column
5. Remove old column
```

## Query Optimization

### EXPLAIN Analysis
```sql
-- Always use EXPLAIN ANALYZE
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT * FROM orders WHERE user_id = 123 AND status = 'pending';

-- Key metrics to watch:
-- - Seq Scan vs Index Scan
-- - Actual rows vs Estimated rows
-- - Buffers: shared hit vs read
```

### Common Optimizations
```sql
-- Use EXISTS instead of IN for large sets
SELECT * FROM users u
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.user_id = u.id);

-- Pagination with keyset (cursor) instead of OFFSET
SELECT * FROM posts
WHERE created_at < '2024-01-01'
ORDER BY created_at DESC
LIMIT 20;

-- Use CTEs for complex queries
WITH active_users AS (
  SELECT id FROM users WHERE last_login > NOW() - INTERVAL '30 days'
)
SELECT * FROM orders WHERE user_id IN (SELECT id FROM active_users);
```

## Constraints & Data Integrity

```sql
-- Primary key
ALTER TABLE users ADD PRIMARY KEY (id);

-- Foreign key with cascade
ALTER TABLE orders ADD CONSTRAINT fk_orders_user
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;

-- Check constraint
ALTER TABLE products ADD CONSTRAINT chk_price_positive
  CHECK (price >= 0);

-- Unique constraint
ALTER TABLE users ADD CONSTRAINT uniq_users_email UNIQUE (email);

-- Exclusion constraint (no overlapping ranges)
ALTER TABLE reservations ADD CONSTRAINT excl_no_overlap
  EXCLUDE USING gist (room_id WITH =, tsrange(start_time, end_time) WITH &&);
```

## Best Practices

- Use UUIDs for public-facing IDs, SERIAL/BIGSERIAL for internal
- Always add `created_at` and `updated_at` timestamps
- Use soft deletes (`deleted_at`) for important data
- Design for eventual consistency in distributed systems
- Document schema decisions in migration files
- Test migrations on production-size data before deploying

© MoizIbnYousaf · MIT · MoizIbnYousaf/ai-agent-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой