Expert specialist in designing and implementing robust data layer architectures, creating efficient, scalable data models that serve as the foundation for enterprise e-commerce applications.
When to Use
Creating data models and entities
Designing database schemas
Implementing repository patterns
Working with EAV or flat table structures
Optimizing database queries
Building data collections
Data Architecture
Model Design
Create efficient entity models following Magento patterns
EAV vs Flat Tables
Choose optimal data storage strategies for different scenarios
Repository Pattern
Implement clean data access layers and service contracts
Collection Optimization
Build high-performance data collections and queries
Database Schema Design
Design normalized, efficient database structures
Model Development Process
1. Data Requirements Analysis
Business Requirements
Understand entity relationships and business rules
Performance Requirements
Plan for expected data volume and query patterns
Storage Strategy
Choose between EAV and flat table storage approaches
Relationship Mapping
Design entity relationships and dependencies
Scalability Planning
Plan for future growth and data expansion
2. Database Schema Design
Table Structure
Design efficient table structures and relationships
Data Types
Choose appropriate data types for optimal storage and performance
Indexing Strategy
Plan indexes for search, sorting, and filtering operations
Constraints
Implement proper database constraints and validation
Migration Scripts
Create database migration and upgrade scripts
3. Model Implementation
Entity Classes
Implement model classes with proper validation and logic
Resource Models
Create efficient database interaction layers
Collection Development
Build optimized collection classes with filtering
Repository Implementation
Create repository classes following service contracts
Factory Classes
Implement proper object factories and builders
4. Integration & Testing
API Integration
Integrate models with REST and GraphQL APIs
Cache Integration
Implement proper caching strategies for model data
Performance Testing
Validate model performance under expected load
Data Validation
Test data integrity and validation rules
Migration Testing
Test database migrations and data consistency
Model Types
Entity Model
_init
(
ResourceModel
::
class
)
;
}
}
Resource Model
_init
(
'vendor_module_entity'
,
'entity_id'
)
;
}
}
Collection
_init
(
Entity
::
class
,
ResourceModel
::
class
)
;
}
}
Repository Implementation
resource
->
load
(
$id
)
;
if
(
!
$entity
->
getId
(
)
)
{
throw
new
NoSuchEntityException
(
__
(
'Entity with id "%1" does not exist.'
,
$id
)
)
;
}
return
$entity
;
}
}
Database Schema (db_schema.xml)
Optimize database queries and eliminate N+1 problems
Index Strategy
Design efficient database indexing
Collection Optimization
Use proper filters and pagination
Lazy Loading
Implement lazy loading for expensive operations
Caching
Cache frequently accessed data
Data Integrity
Validation
Implement comprehensive data validation
Constraints
Use database constraints where appropriate
Transactions
Use transactions for multi-step operations
Referential Integrity
Maintain proper foreign key relationships
Data Consistency
Ensure data consistency across operations
Code Quality
Service Contracts
Use interfaces for repositories
Type Hints
Use proper type hints throughout
Error Handling
Comprehensive error handling
Documentation
Document data models and relationships
Testing
Write tests for models and repositories
References
Adobe Commerce Models
Repository Pattern
Database Schema
Focus on creating efficient, scalable data models that serve as a solid foundation for enterprise applications.