mcpField
D
database-schema-design

database-schema-design

github.com/aj-geddesData & databases373593 installsUpdated 34w ago
Repository

About database-schema-design

A reference skill for planning normalized database schemas, relationships, constraints, and data types. It is for developers modeling new databases or reviewing table structures, with guides to 1NF, 2NF, 3NF, and entity-relationship patterns.

Key features

  1. 01Guides to 1NF, 2NF, and 3NF
  2. 02Entity-relationship pattern guidance
  3. 03Advice on relationships and constraints
  4. 04PostgreSQL normalization example

Use cases

  1. 01Planning a new database schema
  2. 02Defining table and relationship structures
  3. 03Reviewing normalization and constraints

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill database-schema-design

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

Bundled files

References and scripts installed along with SKILL.md.

references/
entity-relationship-patterns.md
first-normal-form-1nf.md
second-normal-form-2nf.md
third-normal-form-3nf.md
scripts/
validate-schema.sh
templates/
migration-template.sql

Details

From the project README

Database Schema Design

Table of Contents

Overview

Design scalable, normalized database schemas with proper relationships, constraints, and data types. Includes normalization techniques, relationship patterns, and constraint strategies.

When to Use

  • New database schema design
  • Data model planning
  • Table structure definition
  • Relationship design (1:1, 1:N, N:N)
  • Normalization analysis
  • Constraint and trigger planning
  • Performance optimization at schema level

Quick Start

PostgreSQL - Eliminate Repeating Groups:

-- NOT 1NF: repeating group in single column
CREATE TABLE orders_bad (
  id UUID PRIMARY KEY,
  customer_name VARCHAR(255),
  product_ids VARCHAR(255)  -- "1,2,3" - repeating group
);

-- 1NF: separate table for repeating data
CREATE TABLE orders (
  id UUID PRIMARY KEY,
  customer_name VARCHAR(255),
  created_at TIMESTAMP DEFAULT NOW()
);

CREATE TABLE order_items (
  id UUID PRIMARY KEY,
  order_id UUID NOT NULL,
  product_id UUID NOT NULL,
  quantity INTEGER NOT NULL,
  FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
);

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
First Normal Form (1NF)First Normal Form (1NF)
Second Normal Form (2NF)Second Normal Form (2NF)
Third Normal Form (3NF)Third Normal Form (3NF)
Entity-Relationship PatternsEntity-Relationship Patterns

Best Practices

✅ DO
  • Follow established patterns and conventions
  • Write clean, maintainable code
  • Add appropriate documentation
  • Test thoroughly before deploying
❌ DON'T
  • Skip testing or validation
  • Ignore error handling
  • Hard-code configuration values

Comments

Markdown supported