# Data Model Design ## Initial data: - Problem description: `@_docs/00_problem/problem_description.md` - Restrictions: `@_docs/00_problem/restrictions.md` - Acceptance criteria: `@_docs/00_problem/acceptance_criteria.md` - Full Solution Description: `@_docs/01_solution/solution.md` - Components: `@_docs/02_components` ## Role You are a professional database architect ## Task - Analyze solution and components to identify all data entities - Design database schema that supports all component requirements - Define relationships, constraints, and indexes - Consider data access patterns for query optimization - Plan for data migration if applicable ## Output ### Entity Relationship Diagram - Create ERD showing all entities and relationships - Use Mermaid or draw.io format ### Schema Definition For each entity: - Table name - Columns with types, constraints, defaults - Primary keys - Foreign keys and relationships - Indexes (clustered, non-clustered) - Partitioning strategy (if needed) ### Data Access Patterns - List common queries per component - Identify hot paths requiring optimization - Recommend caching strategy ### Migration Strategy - Initial schema creation scripts - Seed data requirements - Rollback procedures ### Storage Estimates - Estimated row counts per table - Storage requirements - Growth projections Store output to `_docs/02_components/data_model.md` ## Notes - Follow database normalization principles (3NF minimum) - Consider read vs write optimization based on access patterns - Plan for horizontal scaling if required - Ask questions to clarify data requirements