Database Schema Designer
Database Schema Designer automation and integration
Database Schema Designer is a community skill for designing database schemas across relational and NoSQL paradigms, covering schema modeling for multiple database types, data type selection, relationship mapping, partition strategy planning, and schema evolution management for polyglot persistence architectures.
What Is This?
Overview
Database Schema Designer provides patterns for designing data models that match the strengths of the underlying database engine. It covers relational schema modeling that applies normalization and constraint-based design for SQL databases, document schema design that structures nested documents for MongoDB and similar stores optimizing for read patterns, key-value and wide-column modeling that designs partition keys and sort keys for DynamoDB and Cassandra, data type selection that chooses appropriate types balancing storage efficiency with query flexibility, and schema evolution that manages backward-compatible changes across application versions. The skill enables teams to design schemas tailored to their chosen database technology.
Who Should Use This
This skill serves backend developers choosing between database paradigms for new services, architects designing polyglot persistence strategies, and database administrators reviewing schema designs for production readiness.
Why Use It?
Problems It Solves
Applying relational design patterns to document databases creates excessive joins that negate the performance benefit of denormalized storage. Poor partition key choices in distributed databases cause hot partitions that throttle throughput. Schema changes break existing application versions when not designed for backward compatibility. Data type mismatches between application code and database columns cause silent truncation or conversion errors.
Core Highlights
Multi-paradigm modeler generates schemas for SQL, document, and wide-column stores from the same domain model. Partition planner analyzes access patterns to recommend partition and sort key combinations. Type advisor matches application data types to optimal database column types. Evolution manager plans backward-compatible schema changes.
How to Use It?
Basic Usage
from dataclasses\
import dataclass, field
@dataclass
class Field:
name: str
type: str
nullable: bool = False
indexed: bool = False
@dataclass
class SchemaModel:
name: str
fields: list[Field]\
= field(
default_factory=list)
class SchemaGenerator:
def to_sql(
self,
model: SchemaModel
) -> str:
cols = []
for f in model.fields:
col = (
f'{f.name} '
f'{f.type}')
if not f.nullable:
col += ' NOT NULL'
cols.append(col)
return (
f'CREATE TABLE '
f'{model.name}'
f' (\n '
+ ',\n '.join(
cols)
+ '\n);')
def to_document(
self,
model: SchemaModel
) -> dict:
schema = {}
for f in model.fields:
schema[f.name] = {
'type': f.type,
'required':
not f.nullable}
return {
'collection':
model.name,
'schema': schema}Real-World Examples
class PartitionPlanner:
def __init__(self):
self.access_patterns\
= []
def add_pattern(
self,
name: str,
pk_field: str,
sk_field: str = '',
frequency:\
str = 'high'
):
self.access_patterns\
.append({
'name': name,
'pk': pk_field,
'sk': sk_field,
'freq': frequency})
def recommend(
self
) -> dict:
pk_freq = {}
for p in self\
.access_patterns:
pk = p['pk']
w = 3 if\
p['freq']\
== 'high'\
else 1
pk_freq[pk] =\
pk_freq.get(
pk, 0) + w
best_pk = max(
pk_freq,
key=pk_freq.get)
sk_fields = [
p['sk'] for p
in self\
.access_patterns
if p['pk']\
== best_pk
and p['sk']]
return {
'partition_key':
best_pk,
'sort_keys':
list(set(
sk_fields)),
'patterns_served':
pk_freq[
best_pk]}Advanced Tips
Design DynamoDB schemas by listing all access patterns first and then deriving the key structure rather than starting from a normalized entity model. Use schema versioning fields in document databases to support rolling deployments where old and new application versions coexist. Add composite sort keys using a delimiter pattern to support multiple query types within a single table design.
When to Use It?
Use Cases
Design a DynamoDB single-table schema from a list of application access patterns. Generate SQL and MongoDB schemas from the same domain model for comparison. Plan a backward-compatible schema migration that supports zero-downtime deployment.
Related Topics
Database design, NoSQL modeling, DynamoDB, MongoDB, schema migration, and polyglot persistence.
Important Notes
Requirements
Understanding of the target database engine capabilities and limitations. Documented access patterns with estimated read and write volumes. Application data model with entity relationships and cardinality definitions.
Usage Recommendations
Do: design NoSQL schemas around access patterns rather than entity relationships. Include a schema version field in document collections for safe evolution. Test partition key distribution with realistic data volumes to detect hot partition risk.
Don't: normalize document database schemas like relational tables which defeats their read performance advantage. Choose partition keys based on entity identity alone without considering query frequency distribution. Apply the same schema patterns across different database engines without adapting to their specific strengths.
Limitations
Multi-paradigm schema generation produces starting points that require engine-specific tuning for production use. Access pattern analysis depends on accurate forecasting which may change as features evolve. Single-table DynamoDB designs optimize for known queries but become difficult to extend when new access patterns emerge.
More Skills You Might Like
Explore similar skills to enhance your workflow
Context Engine
Loads and manages company context for all C-suite advisor skills. Reads ~/.claude/company-context.md, detects stale context (>90 days), enriches conte
Hono Api Scaffolder
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.m
Readme Blueprint Generator
readme-blueprint-generator skill for programming & development
Careful
Intercepts destructive commands like rm -rf, DROP TABLE, and force-push with safety warnings
SAP BTP Build Work Zone Advanced
Build advanced SAP Work Zone sites with custom content and integrations
Conducting Social Engineering Pretext Call
Plan and execute authorized vishing (voice phishing) pretext calls to assess employee susceptibility to social