postgresql
Ajuda seu agente a projetar esquemas para PostgreSQL. Ele cobre boas práticas, tipos de dados e otimização para melhor desempenho.
O que ela faz
Este agente ajuda a criar a estrutura (esquema) de um banco de dados PostgreSQL. Ele sugere os melhores tipos de dados, regras (constraints), índices e outras otimizações para garantir que seu banco de dados funcione bem e seja fácil de manter.
Quando usar
- ✓Ao começar um novo projeto e precisar definir como os dados serão organizados.
- ✓Quando precisar otimizar um banco de dados existente para melhor desempenho.
- ✓Ao escolher os tipos de informação corretos para cada coluna (ex: texto, número, data).
Exemplo do que pedir para a IA
“Preciso criar a estrutura de um banco de dados para uma loja online. Quero organizar informações de clientes, produtos e pedidos.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O agente analisa suas necessidades, como o tipo de informação que você vai guardar e como você pretende acessá-la. Com base nisso, ele propõe uma estrutura otimizada, escolhendo os tipos de dados mais adequados e sugerindo índices para agilizar as buscas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill postgresqlOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/postgresql/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Design de Tabelas PostgreSQL
Use esta habilidade quando
- Projetando um schema para PostgreSQL
- Selecionando tipos de dados e restrições
- Planejando índices, partições ou políticas RLS
- Revisando tabelas para escalabilidade e manutenibilidade
Não use esta habilidade quando
- Você está visando um banco de dados não-PostgreSQL
- Você só precisa de otimização de consultas sem alterações de schema
- Você precisa de um guia de modelagem agnóstico de banco de dados
Instruções
- Capture entidades, padrões de acesso e alvos de escala (linhas, QPS, retenção).
- Escolha tipos de dados e restrições que imponham invariantes.
- Adicione índices para caminhos de consulta reais e valide com
EXPLAIN. - Planeje particionamento ou RLS onde exigido por escala ou controle de acesso.
- Revise o impacto da migração e aplique alterações com segurança.
Segurança
- Evite DDL destrutivo em produção sem backups e um plano de reversão.
- Use migrações e validação em staging antes de aplicar alterações de schema.
Regras Principais
- Defina uma CHAVE PRIMÁRIA para tabelas de referência (usuários, pedidos, etc.). Nem sempre é necessária para dados de série temporal/evento/log. Quando usada, prefira
BIGINT GENERATED ALWAYS AS IDENTITY; useUUIDapenas quando a unicidade global/opacidade for necessária. - Normalize primeiro (para 3NF) para eliminar redundância de dados e anomalias de atualização; desnormalize apenas para leituras medidas, de alto ROI, onde o desempenho de junções se provou problemático. A desnormalização prematura cria um fardo de manutenção.
- Adicione NOT NULL onde for semanticamente exigido; use DEFAULTs para valores comuns.
- Crie índices para caminhos de acesso que você realmente consulta: PK/único (automático), colunas FK (manual!), filtros/ordenações frequentes e chaves de junção.
- Prefira TIMESTAMPTZ para tempo de evento; NUMERIC para dinheiro; TEXT para strings; BIGINT para valores inteiros, DOUBLE PRECISION para floats (ou
NUMERICpara aritmética decimal exata).
“Armadilhas” do PostgreSQL
- Identificadores: sem aspas → minúsculas. Evite nomes entre aspas/com maiúsculas e minúsculas. Convenção: use
snake_casepara nomes de tabelas/colunas. - Unique + NULLs: UNIQUE permite múltiplos NULLs. Use
UNIQUE (...) NULLS NOT DISTINCT(PG15+) para restringir a um NULL. - Índices FK: O PostgreSQL não indexa automaticamente colunas FK. Adicione-os.
- Sem coerções silenciosas: estouros de comprimento/precisão geram erros (sem truncamento). Exemplo: inserir 999 em
NUMERIC(2,0)falha com erro, ao contrário de alguns bancos de dados que truncam ou arredondam silenciosamente. - Sequências/identidade têm lacunas (normal; não "corrija"). Rollbacks, falhas e transações concorrentes criam lacunas nas sequências de ID (1, 2, 5, 6...). Este é um comportamento esperado — não tente tornar os IDs consecutivos.
- Armazenamento Heap: sem PK clusterizada por padrão (ao contrário de SQL Server/MySQL InnoDB);
CLUSTERé uma reorganização única, não mantida em inserções subsequentes. A ordem das linhas no disco é a ordem de inserção, a menos que explicitamente clusterizada. - MVCC: atualizações/exclusões deixam tuplas mortas; o vacuum as gerencia — projete para evitar churn de linhas largas e quentes.
Tipos de Dados
- IDs:
BIGINT GENERATED ALWAYS AS IDENTITYpreferível (GENERATED BY DEFAULTtambém é bom);UUIDao mesclar/federar/usar em um sistema distribuído ou para IDs opacos. Gere comuuidv7()(preferível se usar PG18+) ougen_random_uuid()(se usar uma versão mais antiga do PG). - Inteiros: prefira
BIGINTa menos que o espaço de armazenamento seja crítico;INTEGERpara intervalos menores; eviteSMALLINTa menos que seja restrito. - Floats: prefira
DOUBLE PRECISIONaREALa menos que o espaço de armazenamento seja crítico. UseNUMERICpara aritmética decimal exata. - Strings: prefira
TEXT; se limites de comprimento forem necessários, useCHECK (LENGTH(col) <= n)em vez deVARCHAR(n); eviteCHAR(n). UseBYTEApara dados binários. Strings/binários grandes (> 2KB de limite padrão) são armazenados automaticamente em TOAST com compressão. Armazenamento TOAST:PLAIN(sem TOAST),EXTENDED(comprimir + fora de linha),EXTERNAL(fora de linha, sem compressão),MAIN(comprimir, manter em linha se possível). O padrãoEXTENDEDgeralmente é ótimo. Controle comALTER TABLE tbl ALTER COLUMN col SET STORAGE strategyeALTER TABLE tbl SET (toast_tuple_target = 4096)para o limite. Insensível a maiúsculas/minúsculas: para tratamento de localidade/acentos, use collations não determinísticas; para ASCII puro, use índices de expressão emLOWER(col)(preferível, a menos que a coluna precise de PK/FK/UNIQUE insensível a maiúsculas/minúsculas) ouCITEXT. - Dinheiro:
NUMERIC(p,s)(nunca float).
…
Perguntas frequentes
O que são 'tipos de dados'?
São como categorias que definem o que pode ser guardado em uma coluna. Exemplos: 'texto' para nomes, 'número inteiro' para idades, 'data' para aniversários.
O que são 'índices'?
São como o índice remissivo de um livro. Eles ajudam o banco de dados a encontrar informações específicas muito mais rápido, sem precisar ler tudo.
O que é 'esquema'?
É a planta ou a estrutura geral do seu banco de dados, definindo quais tabelas existem, quais colunas cada tabela tem e como elas se relacionam.
Detalhes
Descrição original do autor
Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3860
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC