database-design
Domine o design de banco de dados e decisões de schema
Desenvolvedores têm dificuldades com escolhas de banco de dados e armadilhas no design de schemas. Esta habilidade ensina frameworks de decisão para selecionar bancos de dados, projetar schemas e otimizar consultas com base no contexto.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
Ative e comece a usar
Testar
A utilizar "database-design". Preciso escolher um banco de dados para uma aplicação de chat em tempo real com 10.000 usuários simultâneos, distribuição global e requisitos de latência abaixo de 50ms.
Resultado esperado:
Para chat global em tempo real com requisitos estritos de latência, considere Turso (SQLite na borda) para presença e metadados de mensagens, combinado com uma instância primária PostgreSQL para armazenamento durável. Turso fornece implantação na borda reduzindo latência, enquanto PostgreSQL lida com consultas complexas e transações. Alternativa: PlanetScale para compatibilidade MySQL com branching global.
A utilizar "database-design". Devo normalizar minha tabela de preferências de usuário ou armazenar como JSONB?
Resultado esperado:
Armazene como JSONB se: preferências raramente são consultadas individualmente, o schema evolui frequentemente e você sempre busca o conjunto completo. Normalize se: precisar consultar preferências específicas em cláusulas WHERE, diferentes preferências tiverem diferentes frequências de atualização, ou precisar de restrições de chave estrangeira. Abordagem híbrida: JSONB para preferências flexíveis com uma tabela normalizada para configurações frequentemente filtradas.
Auditoria de Segurança
SeguroAll static analyzer findings are false positives. The 'external_commands' detections are markdown code fence blocks (```) used for educational diagrams, not executable shell commands. The 'weak cryptographic algorithm' flags reference UUID/ULID discussions in documentation context. The schema_validator.py is a legitimate local Python script for Prisma schema validation. This is a documentation-only skill teaching database design principles.
Pontuação de qualidade
O Que Você Pode Construir
Configuração de banco de dados para novo projeto
Um fundador de startup construindo um MVP precisa de orientação para escolher entre PostgreSQL, SQLite ou opções serverless. A habilidade fornece uma árvore de decisão com base nas necessidades de escalabilidade, orçamento e preferências de implantação.
Revisão de design de schema
Um engenheiro de backend projetando uma nova funcionalidade precisa de ajuda para modelar relacionamentos de usuários, timestamps e restrições de chave estrangeira. A habilidade revisa trade-offs de normalização e padrões de relacionamento.
Resolução de problemas de desempenho de consultas
Um desenvolvedor enfrentando consultas lentas precisa entender estratégias de indexação e problemas N+1. A habilidade explica interpretação de EXPLAIN ANALYZE e design de índices compostos.
Tente Estes Prompts
Estou construindo uma aplicação {project_type} com {expected_users} usuários. Meu orçamento é {budget_level} e preciso de {specific_requirements}. Com base no guia de seleção de banco de dados, recomende a melhor opção e explique os trade-offs.Revise meu design de schema para a tabela {table_name}. Preciso armazenar {data_fields} com relacionamentos a {related_tables}. Verifique se minha abordagem segue princípios de normalização, tem índices apropriados e usa os tipos corretos de relacionamento.Minha consulta para {query_description} está levando {execution_time}. Aqui está a saída do EXPLAIN ANALYZE: {explain_output}. Identifique o gargalo e recomende estratégias específicas de indexação ou reestruturação de consulta.Preciso migrar de {current_schema} para {target_schema} com zero downtime. A tabela tem {row_count} linhas e atende {traffic_level} de tráfego. Projete uma estratégia de migração usando as técnicas do guia de migrações.Melhores Práticas
- Sempre defina created_at e updated_at timestamps usando TIMESTAMPTZ para conscientização de fuso horário
- Use chaves primárias UUID ou ULID para sistemas distribuídos para evitar ataques de enumeração e permitir geração de IDs offline
- Crie índices compostos correspondendo aos seus padrões de consulta mais comuns com colunas de igualdade antes de colunas de intervalo
Evitar
- Padronizar PostgreSQL para aplicações simples onde SQLite seria suficiente, adicionando complexidade de infraestrutura desnecessária
- Criar índices em todas as colunas sem considerar o impacto no desempenho de escrita e ineficiência de baixa cardinalidade
- Usar SELECT * em consultas de produção em vez de selecionar explicitamente colunas necessárias