Database Skill
Domain knowledge for database administration and development. Covers schema design, migrations, query optimization, and indexing strategies.
When to Use This Skill
- •Designing new tables or modifying existing schemas
- •Writing or reviewing database migrations
- •Optimizing slow queries
- •Planning index strategies
- •Evaluating normalization vs denormalization tradeoffs
Key Reference Files
| File | Use When |
|---|---|
| schema-design.md | Creating tables, choosing keys, audit patterns |
| migrations.md | Writing safe, reversible migrations |
| query-optimization.md | Debugging slow queries, N+1 detection |
| indexing.md | Choosing index types, composite index order |
Quick Reference
Primary Key Selection
| Type | Use When | Avoid When |
|---|---|---|
| UUID v4 | Distributed systems, no sequential exposure | Need sortability, space-constrained |
| ULID | Need sortability + uniqueness | Legacy system compatibility |
| Serial/Identity | Single database, simple use case | Distributed writes, ID exposure concerns |
Migration Safety
code
Safe (online): ADD COLUMN (nullable), ADD INDEX CONCURRENTLY, CREATE TABLE Unsafe (offline): ADD COLUMN NOT NULL (without default), DROP COLUMN, RENAME
Index Decision Tree
code
High cardinality + equality lookups → B-tree (default) Low cardinality + many values → Consider partial index Array/JSON containment → GIN Geometric/range queries → GiST Exact equality only → Hash (rare)
Core Principles
- •Data integrity first - Constraints catch bugs that code misses
- •Plan for scale - Design decisions are expensive to change
- •Measure before optimizing - Use EXPLAIN ANALYZE, not intuition
- •Backward compatibility - Migrations must not break running code
Related Skills
- •See
foundationsfor universal code quality principles - •See
infrastructurefor connection pooling and deployment patterns