All skills
Skillintermediate

Database Selection

| Type | Examples | Best For | |------|----------|----------| | **Relational** | PostgreSQL, MySQL | Transactions, complex queries, relationships | | **Document** | MongoDB, Firestore | Flexible schemas, rapid iteration | | **Key-Value** | Redis, DynamoDB | Caching, sessions, high throughput | | **Time-Series** | TimescaleDB, InfluxDB | Metrics, IoT, analytics | | **Graph** | Neo4j, Neptune | Rela

Claude Code Knowledge Pack7/10/2026

Overview

Database Selection

Database Types

TypeExamplesBest For
RelationalPostgreSQL, MySQLTransactions, complex queries, relationships
DocumentMongoDB, FirestoreFlexible schemas, rapid iteration
Key-ValueRedis, DynamoDBCaching, sessions, high throughput
Time-SeriesTimescaleDB, InfluxDBMetrics, IoT, analytics
GraphNeo4j, NeptuneRelationships, social networks
SearchElasticsearch, MeilisearchFull-text search, logs

Relational (PostgreSQL, MySQL)

Best For:
- Financial transactions (ACID compliance)
- Complex queries with joins
- Data integrity requirements
- Structured, predictable schemas

When to Avoid:
- Highly variable schemas
- Massive horizontal scaling needs
- Simple key-value access patterns
FeaturePostgreSQLMySQL
JSON supportExcellent (JSONB)Good (JSON)
Full-text searchBuilt-inBasic
ExtensionsRich ecosystemLimited
ReplicationStreaming, logicalStatement, row-based

Document (MongoDB, Firestore)

Best For:
- Flexible, evolving schemas
- Hierarchical data (nested documents)
- Rapid prototyping
- Content management

When to Avoid:
- Complex transactions across documents
- Heavy relational queries
- Strict schema requirements

Key-Value (Redis, DynamoDB)

Best For:
- Session storage
- Caching layer
- Real-time leaderboards
- Rate limiting counters

When to Avoid:
- Complex queries
- Relational data
- Large value sizes (>1MB)

Time-Series (TimescaleDB, InfluxDB)

Best For:
- Metrics and monitoring
- IoT sensor data
- Financial tick data
- Event logging with timestamps

When to Avoid:
- Frequent updates to existing records
- Complex relational queries
- Non-time-based access patterns

Decision Matrix

RequirementRecommended
ACID transactionsPostgreSQL, MySQL
Flexible schemaMongoDB, Firestore
High-speed cachingRedis
Time-series dataTimescaleDB, InfluxDB
Social relationshipsNeo4j
Full-text searchElasticsearch
Serverless scaleDynamoDB, Firestore

Quick Reference

QuestionIf Yes →
Need ACID transactions?Relational (PostgreSQL)
Schema changes frequently?Document (MongoDB)
Sub-millisecond reads?Key-Value (Redis)
Time-based queries?Time-Series
Traversing relationships?Graph (Neo4j)
Full-text search primary?Elasticsearch