database-schema-design
>
Works with
--- name: database-schema-design description: > license: MIT --- # Database Schema Design ## Table of Contents - [Overview](#overview) - [When to Use](#when-to-use) - [Quick Start](#quick-start) - [Reference Guides](#reference-guides) - [Best Practices](#best-practices) ## 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:** ```sql -- 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: | Guide | Contents | |---|---| | [First Normal Form (1NF)](references/first-normal-form-1nf.md) | First Normal Form (1NF) | | [Second Normal Form (2NF)](references/second-normal-form-2nf.md) | Second Normal Form (2NF) | | [Third Normal Form (3NF)](references/third-normal-form-3nf.md) | Third Normal Form (3NF) | | [Entity-Relationship Patterns](references/entity-relationship-patterns.md) | Entity-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
More Database skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pg_cron, pgmq), vector/semantic search (pgvector), and restoring dumps (pg_restore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-database-setup
prisma/skills
Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".
prisma-postgres
prisma/skills
Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

