mcpField
D
database-design

database-design

github.com/davila7Data & databases33.0k531 installsUpdated 1d ago
Repository

About database-design

database-design is a guidance skill for choosing databases and ORMs and designing schemas based on project context. It emphasizes clarifying preferences and deployment constraints instead of defaulting to fixed SQL patterns or a single database.

Key features

  1. 01Database selection guidance
  2. 02ORM selection guidance
  3. 03Schema and relationship planning
  4. 04Index strategy planning
  5. 05Query optimization topics
  6. 06Migration guidance

Use cases

  1. 01Choosing a database for an application
  2. 02Selecting an ORM for a project
  3. 03Planning schema relationships and indexes
  4. 04Reviewing query or migration approaches

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/davila7/claude-code-templates --skill database-design

After installing, type/database-designin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

database-selection.md
indexing.md
migrations.md
optimization.md
orm-selection.md
schema-design.md
scripts/
schema_validator.py

Details

From the project README

Database Design

Learn to THINK, not copy SQL patterns.

🎯 Selective Reading Rule

Read ONLY files relevant to the request! Check the content map, find what you need.

FileDescriptionWhen to Read
database-selection.mdPostgreSQL vs Neon vs Turso vs SQLiteChoosing database
orm-selection.mdDrizzle vs Prisma vs KyselyChoosing ORM
schema-design.mdNormalization, PKs, relationshipsDesigning schema
indexing.mdIndex types, composite indexesPerformance tuning
optimization.mdN+1, EXPLAIN ANALYZEQuery optimization
migrations.mdSafe migrations, serverless DBsSchema changes

⚠️ Core Principle

  • ASK user for database preferences when unclear
  • Choose database/ORM based on CONTEXT
  • Don't default to PostgreSQL for everything

Decision Checklist

Before designing schema:

  • Asked user about database preference?
  • Chosen database for THIS context?
  • Considered deployment environment?
  • Planned index strategy?
  • Defined relationship types?

Anti-Patterns

❌ Default to PostgreSQL for simple apps (SQLite may suffice) ❌ Skip indexing ❌ Use SELECT * in production ❌ Store JSON when structured data is better ❌ Ignore N+1 queries

Comments

Markdown supported