When not to Type 2
Recognize the Type 1 trap when only current state is ever queried.
Concept
slowly-changing-dimensions
The primary modeling idea this problem reinforces.
Requirements
2
Business needs the model must satisfy.
People operations maintains an employee directory used only to route current approvals and show current managers. They explicitly do not report historical manager assignments from this table.
SCD work is not maximally historical by default. Over-versioning a current-only directory adds operational cost without improving the business workflow.
- Pick the SCD strategy for current employee directory attributes.
- Explain what reporting requirement would have changed the answer.
- The answer chooses Type 1 overwrite for the current-state directory.
- The rationale names Type 2 as unnecessary unless historical manager assignment reporting is required.
- Ask whether anyone needs to ask what the value used to be.
- Changing attributes do not automatically require Type 2 history.
- Reflexively choosing Type 2 because the attribute can change.
- Ignoring the stated current-only workflow.
- Adding version rows that no downstream metric or process will query.
Type 1 overwrite for current-only attributes
Overwrite current employee-directory attributes when historical values are not analytically required. A Kimball Type 1 slowly changing dimension.
Optimizes for
- • Simple current-state lookup
- • Lower row churn
- • Operational clarity
Trade-offs
- • Cannot reconstruct prior manager assignments from this table
- • Would need Type 2 or an assignment fact if historical reporting becomes required
Try the question first.
The discussion has other people's approaches and solutions. Give it a real attempt before you read them.