<< All versions
Skill v1.0.0
currentLLM-judged scan90/100omar-obando/qwen-orchestrator/database-design
──Details
PublishedOctober 24, 2026 at 04:34 AM
Content Hashsha256:eb974a7a096e18e7...
Git SHAf5958707c58c
──Files
Files (1 file, 4.1 KB)
SKILL.md4.1 KBactive
SKILL.md · 154 lines · 4.1 KB
version: "1.0.0" name: database-design description: > Database schema design skill covering normalization, indexing strategy, migration patterns, query optimization, and data integrity. Use when designing database schemas, writing migrations, or optimizing queries. license: MIT
Database Design Skill — Schema & Query Expert
This skill provides comprehensive database design guidance for building reliable, performant data layers.
Schema Design Principles
Normalization Levels
- 1NF: No repeating groups, atomic values
- 2NF: 1NF + no partial dependencies
- 3NF: 2NF + no transitive dependencies
- Denormalize for read performance when justified by measurement
Entity Template
sql
CREATE TABLE entities (id UUID PRIMARY KEY DEFAULT gen_random_uuid(),-- Business fieldsname VARCHAR(100) NOT NULL,code VARCHAR(20) NOT NULL UNIQUE,status VARCHAR(20) NOT NULL DEFAULT 'active'CHECK (status IN ('active', 'inactive', 'archived')),-- JSON for flexible metadatametadata JSONB DEFAULT '{}',-- Audit fieldscreated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),deleted_at TIMESTAMPTZ, -- Soft deletecreated_by UUID NOT NULL REFERENCES users(id),updated_by UUID NOT NULL REFERENCES users(id));-- Essential indexesCREATE INDEX idx_entities_status ON entities(status) WHERE deleted_at IS NULL;CREATE INDEX idx_entities_code ON entities(code);CREATE INDEX idx_entities_created_at ON entities(created_at DESC);
Migration Safety Rules
Every Migration Must Have
sql
-- UP Migration-- Description: [What this migration does]-- Reversible: YES-- Data Loss: NONE-- Estimated Duration: [expected runtime]BEGIN;-- Schema changes here-- Data migrations hereCOMMIT;-- DOWN Migration (rollback)BEGIN;-- Exact reverse of UPCOMMIT;
Migration Checklist
- [ ] Both UP and DOWN migrations written
- [ ] No data loss in UP migration
- [ ] DOWN migration actually reverses changes
- [ ] Tested with production-like data volume
- [ ] Foreign key constraints added AFTER data migration
- [ ] Indexes created CONCURRENTLY (PostgreSQL)
Query Optimization
Index Strategy Decision Tree
Is it a PK? → Auto-indexedIs it a FK? → Always indexUsed in WHERE? → Index itUsed in ORDER BY? → Consider indexUsed in both WHERE + ORDER BY? → Composite indexHigh cardinality? → B-tree indexLow cardinality? → Consider partial indexText search? → GIN/GiST index
Common Performance Patterns
sql
-- Pagination: Use cursor-based for large tablesSELECT * FROM productsWHERE id > :last_seen_idORDER BY id ASCLIMIT 20;-- Aggregation: Pre-compute with materialized viewsCREATE MATERIALIZED VIEW order_summary ASSELECTcustomer_id,COUNT(*) as total_orders,SUM(total) as total_spentFROM ordersGROUP BY customer_id;-- Bulk operations: Use batch insertsINSERT INTO products (name, sku, price)SELECT name, sku, price FROM temp_importON CONFLICT (sku) DO UPDATE SETprice = EXCLUDED.price,updated_at = NOW();
Data Integrity Patterns
Constraints
sql
-- Check constraints for business rulesALTER TABLE products ADD CONSTRAINT chk_positive_priceCHECK (price >= 0);-- Exclusion constraints for schedulingALTER TABLE bookings ADD CONSTRAINT excl_no_overlapEXCLUDE USING gist (room_id WITH =,daterange(start_date, end_date, '[]') WITH &&);-- Partial unique index for soft deleteCREATE UNIQUE INDEX uq_products_sku_activeON products(sku) WHERE deleted_at IS NULL;## When NOT to Use**Do NOT use this skill when:**- Writing application business logic (use domain-driven skill)- Writing API endpoint implementations (use api-design skill)- Reviewing code for quality issues (use code-review skill)- Performing security audits (use security-auditor skill)- Analyzing deployment configurations (use deployment skill)- Writing SQL queries for specific databases (use sql-best-practices skill)- Designing multi-page website layouts (use design-system skill)- Reviewing git workflows (use git-workflow skill)