# design-postgres-tables

Скилл-справочник по проектированию таблиц PostgreSQL: типы данных, индексы, ограничения, JSONB и партиционирование. Пригодится, когда агент создаёт или меняет схему.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 613 установок · ★ 1874
- Автор: tigerdata
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/timescale/pg-aiguide/tree/HEAD/skills/design-postgres-tables/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/design-postgres-tables

## Что делает

Скилл включается, когда вы просите агента спроектировать таблицы, схему или модель данных PostgreSQL, выбрать типы, ограничения и индексы. Внутри — свод правил: первичные ключи через `BIGINT GENERATED ALWAYS AS IDENTITY`, нормализация до 3NF, `NOT NULL` там, где это осмысленно, индексы под реальные запросы.

Отдельный блок про грабли PostgreSQL. Внешние ключи не индексируются автоматически, поэтому индекс на FK-колонку добавляют руками. `UNIQUE` допускает несколько NULL, если не указать `NULLS NOT DISTINCT`. Переполнение длины или точности даёт ошибку, а не тихое усечение. Разрывы в последовательностях — норма, чинить их не нужно.

Есть разбор типов: `TIMESTAMPTZ` вместо `TIMESTAMP`, `NUMERIC` для денег, `TEXT` вместо `VARCHAR(n)`, `JSONB` с индексом GIN, массивы, диапазоны, сетевые типы, полнотекстовый поиск. Отдельный список того, что использовать не стоит. Скилл требует PostgreSQL и не заменяет проверку на живой базе: правила общие, а план запроса зависит от ваших данных.

## Требования
- Работает с: PostgreSQL

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add timescale/pg-aiguide --skill design-postgres-tables -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/design-postgres-tables/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/design-postgres-tables/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add timescale/pg-aiguide --skill design-postgres-tables -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/design-postgres-tables/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add timescale/pg-aiguide --skill design-postgres-tables -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/design-postgres-tables/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install timescale/pg-aiguide design-postgres-tables
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/design-postgres-tables/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add timescale/pg-aiguide --skill design-postgres-tables -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/timescale/pg-aiguide --path skills/design-postgres-tables
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/design-postgres-tables/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add timescale/pg-aiguide --skill design-postgres-tables -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/timescale/pg-aiguide/tree/HEAD/skills/design-postgres-tables/SKILL.md

## Когда брать
- выбрать тип колонки под деньги, время или строки без сюрпризов
- добавить индекс на внешний ключ, который PostgreSQL не создал сам
- решить, когда нормализовать, а когда денормализовать таблицу
- спроектировать JSONB-схему с индексом GIN под поиск по вложенным полям
- разобраться с ограничениями и NULL в UNIQUE-констрейнтах

## Примеры запросов агенту
- Спроектируй таблицы users и orders для PostgreSQL: типы, ключи, индексы
- Добавь индекс на колонку внешнего ключа в таблице orders
- Проверь мою схему: где тут денормализация не нужна и какие индексы лишние

## Похожие
- [postgres-patterns](https://affpapa.org/nevibecode/skills/postgres-patterns.md) — скилл · 5200 установок
- [postgres-best-practices](https://affpapa.org/nevibecode/skills/neondatabase-postgres-best-practices.md) — скилл · 1900 установок
- [database-design](https://affpapa.org/nevibecode/skills/moizibnyousaf-database-design.md) — скилл · 604 установки
- [postgres](https://affpapa.org/nevibecode/skills/sanjay3290-postgres.md) — скилл · 620 установок
- [sql-pro](https://affpapa.org/nevibecode/skills/httpsgithubcomjeffallan-sql-pro.md) — скилл · 6400 установок
- [postgresql-database-engineering](https://affpapa.org/nevibecode/skills/postgresql-database-engineering.md) — скилл · 1800 установок

Из того же набора: [timescale/pg-aiguide](https://affpapa.org/nevibecode/by/timescale/pg-aiguide.md) — 9 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
