Catalog
method#Architecture#Software Engineering#Governance#Integration

Schema Design

A methodical approach for modelling data structures, relationships, and integrity rules for applications.

Schema design is a structured approach for modelling data structures, relationships, and integrity rules in information systems.
Established
Medium

Classification

  • Medium
  • Technical
  • Architectural
  • Intermediate

Technical context

Databases (PostgreSQL, MySQL)API gateways and contract testing toolsData migration and ETL pipelines

Principles & goals

Domain-driven modelling firstMake integrity rules explicitPlan for evolution and versioning
Build
Domain, Team

Use cases & scenarios

Compromises

  • Over-optimizing for short-term performance
  • Inconsistent schemas due to missing governance
  • Data loss from careless migrations
  • Keep schema changes small and backward compatible
  • Run contract tests as part of CI
  • Design indexes based on real query profiles

I/O & resources

  • Domain model and business concepts
  • Technical requirements (latency, throughput)
  • Existing data sources and API contracts
  • Schema definitions (DDL, JSON Schema, OpenAPI)
  • Migration and versioning strategy
  • Test and validation artifacts

Description

Schema design is a structured approach for modelling data structures, relationships, and integrity rules in information systems. The method emphasizes design principles, normalization, domain modelling, and schema evolution. It supports consistency, query performance optimization, and early identification of migration and change risks across systems.

  • Improved data consistency and maintainability
  • Targeted performance optimization via index design
  • Reduced risk during migrations

  • Requires domain knowledge and stakeholder alignment
  • May increase initial time and planning effort
  • Not every optimization is universally valid long-term

  • Schema change rate

    Number of schema changes per month; measures stability.

  • Query latency

    Average response time of critical queries.

  • Contract test coverage

    Share of API/schema changes with automated contract tests.

Normalized customer-order schema

Example of relational normalization for customers, orders and line items.

Event-sourced model for account transactions

Case study with schema for event sourcing and projected read models.

JSON Schema for microservice APIs

Contract schemas for validating API payloads and responses.

1

Perform domain analysis and create entity model

2

Develop schema prototype and test queries

3

Define migration path and rollback scenarios

4

Set up automated tests and monitoring

⚠️ Technical debt & bottlenecks

  • Undocumented denormalizations
  • Outdated schema versions in legacy systems
  • Missing automated migration checks
Complex joinsMissing indexesInconsistent data models
  • Directly changing production schemas without migration tests
  • Over-indexing every column
  • Using a relational schema for heavily schema-less workloads
  • Ignoring historical data requirements
  • Underestimating integration costs of legacy systems
  • Missing stakeholder alignment on field changes
Data modelling and normalizationDatabase performance and index designMigration and versioning strategies
Data integrityPerformance and scalabilityInteroperability and integration
  • Existing legacy schemas
  • Regulatory data retention requirements
  • Technical limits of the database platform