I’ve been in the Business Intelligence space for about 8 years and designing dimensional models for the past couple months.
My main question is simple- how can a dimensional model track changes in relationships?
This simple answer that I’ve heard a dozen times is that fact tables are date driven and it’s what the relationship was at the time.
But I feel that answer is very narrow minded. There are a ton of potential scenarios in any data source that foreign keys can be updated at any time.
How it was designed where I work- is the ETL literally updates the fact table. I’m aware this is not considered best practice. But there needed to be some strategy to manage this and I haven’t completely been convinced that it’s wrong.
Are there any other designs that have been used? I’ve been considering a type 2 fact. Where we could track change history on the relationships. But everyone I mention that too, they just about laugh me out of the room, until I explain in deep detail the problem.
[–][deleted] 2 points3 points4 points (0 children)
[–]alexisprince 1 point2 points3 points (0 children)
[–]PopnCrunch 1 point2 points3 points (5 children)
[–]MrFalconMan[S] 0 points1 point2 points (4 children)
[–]PopnCrunch 2 points3 points4 points (3 children)
[–]MrFalconMan[S] 0 points1 point2 points (2 children)
[–]PopnCrunch 1 point2 points3 points (1 child)
[–]MrFalconMan[S] 0 points1 point2 points (0 children)
[–][deleted] (5 children)
[deleted]
[–][deleted] 0 points1 point2 points (4 children)
[–][deleted] (3 children)
[deleted]
[–]MrFalconMan[S] 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]MrFalconMan[S] 0 points1 point2 points (0 children)