AgentSkillsCN

database-design

以 TypeScript 5+ 及 JavaScript 为核心,结合 React 生态进行开发。涵盖项目搭建、React 18+ 组件、Next.js 14+ App Router、现代 ESM 模式、Zustand/React Query 状态管理、React Hook Form 结合 Zod 校验、Tailwind CSS 样式设计、Vitest/Playwright 测试,以及无障碍访问支持。在构建 React 组件、搭建 Next.js 项目,或当用户询问“如何管理状态?”或“TypeScript 中实现 X 的最佳方式是什么?”时,可加以运用。

SKILL.md
--- frontmatter
name: database-design
description: >-
  Covers schema design, optimization, and database administration. Includes primary key selection
  (UUID/ULID/serial), safe migrations, query optimization with EXPLAIN ANALYZE, indexing
  strategies (B-tree, partial, composite), and normalization tradeoffs. Use when designing tables,
  writing migrations, or when the user asks "what primary key should I use?" or "how do I optimize
  this query?"

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

FileUse When
schema-design.mdCreating tables, choosing keys, audit patterns
migrations.mdWriting safe, reversible migrations
query-optimization.mdDebugging slow queries, N+1 detection
indexing.mdChoosing index types, composite index order

Quick Reference

Primary Key Selection

TypeUse WhenAvoid When
UUID v4Distributed systems, no sequential exposureNeed sortability, space-constrained
ULIDNeed sortability + uniquenessLegacy system compatibility
Serial/IdentitySingle database, simple use caseDistributed 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

  1. Data integrity first - Constraints catch bugs that code misses
  2. Plan for scale - Design decisions are expensive to change
  3. Measure before optimizing - Use EXPLAIN ANALYZE, not intuition
  4. Backward compatibility - Migrations must not break running code

Related Skills

  • See foundations for universal code quality principles
  • See infrastructure for connection pooling and deployment patterns