Database Schema
Overview
Database Architecture
Technology Stack
Database Schema
Customer Collection
Schema Definition
Field Specifications
Core Customer Fields
firstName (String, Optional)
lastName (String, Optional)
phone (String, Optional)
email (String, Optional)
note (String, Optional)
customerType (String, Required with Default)
System Fields
_id (ObjectId, Auto-generated)
stateHistory (Array, StateHistorySchema)
createdAt (Date, Auto-generated)
updatedAt (Date, Auto-generated)
Embedded Schemas
StateHistorySchema
Validation Rules
Domain-Level Validation
Mandatory Field Validation
Email Validation
Phone Validation
Regular Customer Validation
Indexing Strategy
Primary Indexes
Composite Indexes
Performance Optimization Indexes
Query Patterns
Common Queries
Find Customer by ID
Find Customer by Email or Phone
Customer Search with Pagination
Customer Type Statistics
Integration Queries
Customers for Order Processing
First-Time Customer Detection
Multi-Tenancy
Tenant Isolation Strategy
Tenant Context Implementation
Data Consistency
Referential Integrity
Customer References in Orders
Customer Data Snapshots
State Management
Soft Delete Implementation
State History Tracking
Performance Optimization
Query Optimization
Index Utilization
Pagination Optimization
Memory Management
Field Projection
Aggregation Optimization
Data Migration
Schema Evolution
Example Migration Scripts
Add Customer Notes Field
Customer Type Migration
Phone Number Normalization
Backup and Recovery
Backup Strategy
Data Retention
Security Considerations
Data Protection
PII Handling
Privacy Compliance
Access Control
Database Security
Application Security
Monitoring and Diagnostics
Performance Monitoring
Key Metrics
Monitoring Queries
Error Monitoring
Common Issues
Diagnostic Queries
Integration Points
Order Management Integration
Customer-Order Relationships
Data Flow
Payment System Integration
Customer-Payment Relationships
Notification System Integration
Customer Communication
Summary
Last updated