Evolving Models Based on Changing Requirements
Premium
In real-world scenarios and during interviews, requirements often evolve. Being able to adapt your model quickly is crucial.
Consider this evolution for an e-commerce platform:
Initial Requirement: Track basic sales data
[Customer] ---- [Sales Fact] ---- [Product] | [Time]
New Requirement: Add customer segmentation and product categorization
[Customer] ---- [Sales Fact] ---- [Product] | | | [Customer [Time] [Product Segment] Category]
Further Requirement: Track marketing campaign effectiveness
[Customer] ---- [Sales Fact] ---- [Product] | | | [Customer [Time] [Product Segment] | Category] | [Marketing Campaign]
When evolving your model:
- Identify new entities or attributes needed
- Determine if they should be new dimensions or added to existing ones
- Consider the impact on fact table granularity
- Assess the effect on existing analyses and queries