Communitygithub.com

sickn33/database-design

Principios de diseño de bases de datos y toma de decisiones. Diseño de esquemas, estrategias de indexación, selección de ORM, bases de datos serverless.

¿Qué es database-design?

Este skill proporciona una guía completa y práctica sobre principios de diseño de bases de datos, ayudando a desarrolladores e ingenieros de software a tomar decisiones informadas en la creación y optimización de bases de datos. Cubre aspectos fundamentales como el diseño de esquemas relacionales y NoSQL, estrategias de indexación para mejorar el rendimiento de consultas, selección del mapeador objeto-relacional (ORM) más adecuado según el proyecto, y la evaluación de bases de datos serverless (como AWS Aurora Serverless, PlanetScale, o Supabase) para aplicaciones modernas. Es útil para equipos que trabajan con plataformas de agentes de IA como Claude Code, Cursor o Codex, ya que ofrece criterios claros y ejemplos prácticos para integrar decisiones de base de datos en flujos de desarrollo asistidos por IA. El skill se basa en documentación técnica actualizada y experiencias del mundo real, permitiendo a los usuarios aplicar patrones de diseño eficientes, escalables y mantenibles.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/database-design

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace database-design?

Principios de diseño de bases de datos y toma de decisiones. Diseño de esquemas, estrategias de indexación, selección de ORM, bases de datos serverless.

Introducción

El diseño de una base de datos es una de las decisiones más críticas en el desarrollo de software. Este skill te guiará a través de los principios fundamentales y las mejores prácticas para diseñar esquemas eficientes, seleccionar las estrategias de indexación adecuadas, elegir el ORM correcto para tu proyecto y evaluar el uso de bases de datos serverless.

Diseño de Esquemas

  • Normalización: Aplica las formas normales (1NF, 2NF, 3NF) para reducir redundancia y evitar anomalías de datos.
  • Denormalización: Utilízala cuando el rendimiento de lectura sea crítico y la redundancia controlada sea aceptable.
  • Relaciones: Define claramente claves primarias y foráneas, y elige entre relaciones uno a uno, uno a muchos y muchos a muchos según los requisitos.
  • Tipos de datos: Selecciona tipos de datos apropiados (ej., UUID para IDs distribuidos, TIMESTAMP con zona horaria para fechas).

Estrategias de Indexación

  • Índices B-tree: Ideales para consultas de rango y ordenamiento.
  • Índices hash: Adecuados para búsquedas de igualdad puntuales.
  • Índices compuestos: Útiles para consultas con múltiples condiciones.
  • Índices parciales: Reducen el tamaño del índice al filtrar solo filas relevantes.
  • Índices de texto completo: Necesarios para búsquedas de texto libre.

Consejos Prácticos

  1. Siempre analiza el plan de ejecución de consultas (usando EXPLAIN).
  2. Monitorea el uso de índices y elimina los no utilizados.
  3. Considera el costo de mantenimiento de índices en operaciones de escritura intensiva.

Selección de ORM

Elegir un ORM depende del lenguaje, el proyecto y la preferencia del equipo. Algunos ORM populares:

  • Prisma (TypeScript/Node.js): Tipado fuerte, migraciones automáticas, buena documentación.
  • TypeORM (TypeScript/Node.js): Flexible, soporte para múltiples bases de datos.
  • SQLAlchemy (Python): Maduro, ORM y SQL expresivo.
  • Active Record (Ruby on Rails): Convención sobre configuración, integración profunda con Rails.
  • Entity Framework Core (C#/.NET): Integración con LINQ, migraciones.

Criterios de Selección

  • Rendimiento: Evalúa la sobrecarga del ORM frente a consultas SQL raw.
  • Facilidad de uso: Curva de aprendizaje, documentación y comunidad.
  • Flexibilidad: Capacidad de escribir SQL personalizado cuando sea necesario.
  • Migraciones: Soporte para cambios de esquema automatizados.

Bases de Datos Serverless

Las bases de datos serverless eliminan la gestión de infraestructura y escalan automáticamente. Ejemplos:

  • AWS Aurora Serverless: Escalado automático, compatible con MySQL/PostgreSQL, pago por uso.
  • PlanetScale: Base de datos MySQL serverless con branching y despliegues sin bloqueo.
  • Supabase: PostgreSQL serverless con funciones en tiempo real, autenticación y almacenamiento.
  • FaunaDB: Base de datos distribuida serverless con modelo de datos flexible.

Ventajas

  • Sin aprovisionamiento manual de servidores.
  • Escalado automático según la demanda.
  • Facturación basada en uso (operaciones, almacenamiento).
  • Integración sencilla con funciones serverless (AWS Lambda, Vercel Functions).

Consideraciones

  • Latencia de arranque en frío (cold start).
  • Límites de concurrencia y rendimiento.
  • Costos impredecibles en picos de tráfico.
  • Dependencia del proveedor.

Toma de Decisiones

Utiliza este flujo para decidir:

  1. ¿Qué tipo de datos? (relacionales, documentos, grafos, clave-valor).
  2. ¿Escala esperada? (volumen de datos, consultas por segundo).
  3. ¿Requisitos de consistencia? (ACID vs eventual).
  4. ¿Presupuesto y equipo? (base de datos gestionada vs autoalojada).
  5. ¿Stack tecnológico? (compatibilidad con el lenguaje/framework).

Enlaces Útiles


Este skill es mantenido por la comunidad. Si encuentras errores o tienes sugerencias, por favor contribuye en el repositorio de GitHub.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

sickn33/3d-web-experience

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

sickn33/agent-memory-mcp

A hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).

sickn33/agent-memory-systems

Memory is the cornerstone of intelligent agents. Without it, every interaction starts from zero. This skill covers the architecture of agent memory: short-term (context window), long-term (vector stores), and the cognitive architectures that organize them.

sickn33/ai-agents-architect

Expert in designing and building autonomous AI agents. Masters tool use, memory systems, planning strategies, and multi-agent orchestration.

sickn33/api-documentation-generator

Generate comprehensive, developer-friendly API documentation from code, including endpoints, parameters, examples, and best practices

sickn33/api-patterns

API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.

sickn33/api-security-best-practices

Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities

sickn33/app-store-optimization

Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store

sickn33/architecture

Architectural decision-making framework. Requirements analysis, trade-off evaluation, ADR documentation. Use when making architecture decisions or analyzing system design.

sickn33/audio-transcriber

Transform audio recordings into professional Markdown documentation with intelligent summaries using LLM integration

sickn33/aws-serverless

Specialized skill for building production-ready serverless applications on AWS. Covers Lambda functions, API Gateway, DynamoDB, SQS/SNS event-driven patterns, SAM/CDK deployment, and cold start optimization.

sickn33/backend-architect

Expert backend architect specializing in scalable API design, microservices architecture, and distributed systems.

sickn33/backend-dev-guidelines

You are a senior backend engineer operating production-grade services under strict architectural and reliability constraints. Use when routes, controllers, services, repositories, express middleware, or prisma database access.

sickn33/bash-linux

Bash/Linux terminal patterns. Critical commands, piping, error handling, scripting. Use when working on macOS or Linux systems.

sickn33/bash-scripting

Bash scripting workflow for creating production-ready shell scripts with defensive patterns, error handling, and testing.

sickn33/brainstorming

Use before creative or constructive work (features, architecture, behavior). Transforms vague ideas into validated designs through disciplined reasoning and collaboration.

sickn33/browser-automation

Browser automation powers web testing, scraping, and AI agent interactions. The difference between a flaky script and a reliable system comes down to understanding selectors, waiting strategies, and anti-detection patterns.

sickn33/browser-extension-builder

Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing.

sickn33/bullmq-specialist

BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications.

sickn33/bun-development

Fast, modern JavaScript/TypeScript development with the Bun runtime, inspired by [oven-sh/bun](https://github.com/oven-sh/bun).

Skills relacionados