Habilidades postgresql
📦

postgresql

Seguro

Projetar Esquemas de Banco de Dados PostgreSQL

Também disponível em: 2025Emma,2025Emma

Erros no design de esquemas de banco de dados causam problemas de integridade e desempenho de dados. Esta habilidade fornece práticas recomendadas específicas para PostgreSQL em tipos de dados, índices, restrições e padrões de escalabilidade.

Suporta: Claude Codex Code(CC)
📊 71 Adequado
1

Baixar o ZIP da skill

2

Upload no Claude

Vá em Configurações → Capacidades → Skills → Upload skill

3

Ative e comece a usar

Testar

A utilizar "postgresql". Design a users table with email, name, and timestamps

Resultado esperado:

  • CREATE TABLE users (
  • user_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  • email TEXT NOT NULL UNIQUE,
  • name TEXT NOT NULL,
  • created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
  • updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
  • );
  • CREATE UNIQUE INDEX ON users (LOWER(email));

A utilizar "postgresql". Should I use UUID or BIGINT for primary keys?

Resultado esperado:

  • Use BIGINT GENERATED ALWAYS AS IDENTITY when:
  • - Sequential IDs are acceptable
  • - Index performance is critical
  • - Smaller index size matters
  •  
  • Use UUID when:
  • - Global uniqueness is required
  • - ID opacity is a security requirement
  • - Merging data from multiple sources

Auditoria de Segurança

Seguro
v1 • 2/24/2026

All 221 static analyzer findings were determined to be false positives. The skill consists entirely of markdown documentation (SKILL.md) with no executable code. Backtick characters are markdown formatting for code examples, not shell execution. References to security features like Row Level Security are PostgreSQL documentation, not Windows SAM access. The skill provides educational guidance for database schema design with no security risks.

1
Arquivos analisados
233
Linhas analisadas
0
achados
1
Total de auditorias
Nenhum problema de segurança encontrado
Auditado por: claude

Pontuação de qualidade

38
Arquitetura
100
Manutenibilidade
87
Conteúdo
32
Comunidade
100
Segurança
91
Conformidade com especificações

O Que Você Pode Construir

Design de Esquema para Nova Aplicação

Projetar um esquema de banco de dados completo para uma nova aplicação web com tipos de dados apropriados, chaves primárias, relacionamentos de chave estrangeira e índices para padrões de consulta comuns.

Revisão e Otimização de Esquema

Revisar designs de tabelas existentes para problemas de desempenho, índices faltantes, tipos de dados inadequados ou lacunas de restrições que podem causar problemas de integridade de dados.

Planejamento de Migração

Planejar evolução segura do esquema com DDL transacional, criação de índices concorrentes e estratégias para adicionar colunas a tabelas grandes sem tempo de inatividade.

Tente Estes Prompts

Design Básico de Tabela
Projetar uma tabela PostgreSQL para armazenar perfis de usuário com campos para e-mail, nome, data de registro e configurações opcionais de perfil. Usar tipos de dados e restrições apropriados.
Estratégia de Indexação
Tenho uma tabela de consultas com colunas: id, user_id, status, created_at. Consultas comuns filtram por user_id e status, e ordenam por created_at decrescente. Recomendar uma estratégia de indexação.
Decisão de Design JSONB
Devo armazenar atributos de produto em uma coluna JSONB ou criar colunas separadas? Os atributos variam por categoria de produto e os usuários frequentemente pesquisam por atributos específicos.
Particionamento de Tabelas Grandes
Tenho uma tabela de eventos crescendo em 10 milhões de linhas por mês. Consultas tipicamente filtram por event_date e device_id. Recomendar uma estratégia de particionamento e explicar os trade-offs.

Melhores Práticas

  • Use TIMESTAMPTZ em vez de TIMESTAMP para todos os timestamps de eventos para evitar confusão de fuso horário
  • Adicione índices explícitos em colunas de chave estrangeira, pois o PostgreSQL não os cria automaticamente
  • Normalize para 3NF primeiro, depois desnormalize apenas para ganhos de desempenho de leitura comprovados e de alto ROI

Evitar

  • Usar VARCHAR com limites de tamanho em vez de TEXT com restrições CHECK
  • Criar índices em cada coluna sem analisar os padrões de consulta reais
  • Usar SERIAL em vez de GENERATED ALWAYS AS IDENTITY para colunas de auto-incremento

Perguntas Frequentes

Devo usar TEXT ou VARCHAR para colunas de string?
Use TEXT para a maioria dos casos. O PostgreSQL armazena TEXT e VARCHAR de forma idêntica. Se você precisar de validação de tamanho, adicione uma restrição CHECK em vez de usar VARCHAR(n).
Preciso indexar colunas de chave estrangeira?
Sim. O PostgreSQL não indexa automaticamente colunas FK. Adicione índices explícitos em colunas FK para desempenho de junção e para evitar problemas de bloqueio durante exclusões de linhas pai.
Quando devo usar JSONB em vez de colunas regulares?
Use JSONB para atributos opcionais, variáveis ou semi-estruturados. Mantenha dados relacionais centrais em colunas regulares. Sempre adicione um índice GIN em colunas JSONB para consultas de contenção.
Qual é a diferença entre TIMESTAMP e TIMESTAMPTZ?
TIMESTAMPTZ armazena timestamps com reconhecimento de fuso horário e converte internamente para UTC. TIMESTAMP armazena valores literais sem contexto de fuso horário. Sempre use TIMESTAMPTZ para evitar bugs de fuso horário.
Devo particionar minha tabela?
Considere particionamento para tabelas excedendo 100 milhões de linhas onde consultas filtram consistentemente por uma chave de partição como data. Particionamento adiciona complexidade, então use apenas quando benefícios claros existirem.
Como adicionar com segurança uma coluna NOT NULL a uma tabela grande?
Adicione a coluna como NULL primeiro, preencha os dados, depois altere para NOT NULL. Adicionar NOT NULL com um valor padrão volátil como now() causa uma reescrita completa da tabela. Use um valor padrão não volátil ou migração em múltiplas etapas.

Detalhes do Desenvolvedor

Estrutura de arquivos

📄 SKILL.md