
Database Designer
- 20 installs
- 84 repo stars
- Updated January 28, 2026
- aidotnet/moyucode
database-designer is a Claude Code skill that designs and optimizes database schemas and generates migration scripts for PostgreSQL, MySQL, SQLite and MongoDB.
About
database-designer is a Claude Code skill that designs and optimizes database schemas for PostgreSQL, MySQL, SQLite and MongoDB. It guides entity-relationship modeling, normalization, index optimization and migration script generation. A developer uses it when planning or evolving a data model for an application. It ships worked SQL and Entity Framework Core migration examples.
- Designs relational and document database schemas
- Covers ER modeling, normalization and indexing
- Emits migration scripts including Entity Framework Core
Database Designer by the numbers
- 20 all-time installs (skills.sh)
- Ranked #555 of 911 Databases skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
database-designer capabilities & compatibility
- Capabilities
- schema design · database migrations · index optimization
- Works with
- postgres · mysql · mongodb
- Use cases
- database · api development
- Pricing
- Free
What database-designer says it does
Design and optimize database schemas with Entity-Relationship modeling, normalization, and migration scripts.
You are a database architect that designs efficient, scalable database schemas.
npx skills add https://github.com/aidotnet/moyucode --skill database-designerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 20 |
|---|---|
| repo stars | ★ 84 |
| Last updated | January 28, 2026 |
| Repository | aidotnet/moyucode ↗ |
What it does
Design a normalized database schema with indexes and generate migration scripts.
Who is it for?
Developers planning or evolving a relational or document database schema.
Skip if: Query tuning against a live database or ORM-agnostic runtime introspection.
When should I use this skill?
You need to design a schema, normalize a data model or generate migration scripts.
What you get
A schema with indexes and migration scripts is produced for the chosen database.
- database schema
- index definitions
- migration scripts
By the numbers
- 4 target databases (PostgreSQL, MySQL, SQLite, MongoDB)
Files
Database Designer Skill
Description
Design and optimize database schemas with Entity-Relationship modeling, normalization, and migration scripts.
Trigger
/db-designcommand- User requests database schema design
- User needs migration scripts
Prompt
You are a database architect that designs efficient, scalable database schemas.
PostgreSQL Schema Example
-- Users table
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
name VARCHAR(100) NOT NULL,
avatar_url TEXT,
email_verified BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Create index for email lookups
CREATE INDEX idx_users_email ON users(email);
-- Posts table with foreign key
CREATE TABLE posts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
title VARCHAR(255) NOT NULL,
content TEXT,
status VARCHAR(20) DEFAULT 'draft' CHECK (status IN ('draft', 'published', 'archived')),
published_at TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Composite index for user's posts
CREATE INDEX idx_posts_user_status ON posts(user_id, status);
-- Full-text search index
CREATE INDEX idx_posts_search ON posts USING GIN(to_tsvector('english', title || ' ' || content));
-- Updated_at trigger
CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER users_updated_at
BEFORE UPDATE ON users
FOR EACH ROW EXECUTE FUNCTION update_updated_at();Entity Framework Core Migration
public class CreateUsersTable : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Users",
columns: table => new
{
Id = table.Column<Guid>(nullable: false, defaultValueSql: "gen_random_uuid()"),
Email = table.Column<string>(maxLength: 255, nullable: false),
PasswordHash = table.Column<string>(maxLength: 255, nullable: false),
Name = table.Column<string>(maxLength: 100, nullable: false),
CreatedAt = table.Column<DateTime>(nullable: false, defaultValueSql: "NOW()")
},
constraints: table =>
{
table.PrimaryKey("PK_Users", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_Users_Email",
table: "Users",
column: "Email",
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(name: "Users");
}
}Index Optimization Guidelines
-- Good: Selective index on frequently queried column
CREATE INDEX idx_orders_status ON orders(status) WHERE status = 'pending';
-- Good: Covering index for common query
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC) INCLUDE (total, status);
-- Avoid: Index on low-cardinality column
-- CREATE INDEX idx_users_active ON users(is_active); -- Only 2 values!Tags
database, sql, schema, design, optimization, migration
Compatibility
- Codex: ✅
- Claude Code: ✅
Related skills
FAQ
Which databases does it target?
It targets PostgreSQL, MySQL, SQLite and MongoDB.
Does it produce migrations?
Yes, it generates migration scripts including Entity Framework Core migrations.