Hi,
I have 'inherited' a number of pre-built fact and dimension tables.
The fact tables are joined to the dimension tables in the usual fashion.
However, the Fact tables also have PKs and some of the Fact tables have FKs to other Fact tables.
The facts are not aggregated facts, there is only very 'rough' parent and child relationships between them.
I can see that holding a Fact FK in a Fact table is useful for facilitating fact to fact drilling.
However, given that these are facts with very different dimension joins, other than where there are conformed dimensions, which is rare, I cannot see that it is useful for much else, wouldn't I need a bridge table between the two to solve the many to many linkage?
I can also see that I could join the less detailed Fact Detention onto the
Where the 'rough' relationship exists should I be creating any kind of joins between the FACT tables, and if so how?
i.e. Simplified Example
Fact Detentions
Contains Detention_Id PK, various FKs, measures
Fact Detention Sheet
Contains Detention_Sheet_Id PK, Detention FK (to the above),various other FKs, measures
Fact Detention Reasons
Contains Detention_Reasons_Id PK, Detention FK (to Fact Detentions), various other FKs, measures
(and various others, all having the Detention_Id FK back to the Fact Detentions table)
My thoughts are; -
1. Combine the parent into the detail as a single LTS, as the key is always there - fairly simple and easy
2. Join the Facts - feels entirely wrong
3. Set the detail / parent as if they are fact aggregates, using the parent level as the source for the fields at both levels for the missing FKS, and the detail for the FKS at the detail level - feels wrong again, but I am struggling to articulate why.
Any input appreciated!
thanks,
Robert.