Forum Discussion

Anushree2929's avatar
Anushree2929
New Member
3 months ago
Solved

Join 3 fact table together with one-to-many relationship

I have a large semantic model, and as a beginner, I'm trying to understand the best practices for data modeling in Power BI. In my current model, the data engineer has connected two to three fact ta...
  • v-csrikanth's avatar
    3 months ago

    Hi Anushree2929 

    Your instinct is right, don't connect fact tables directly in Power BI. Use a star schema instead.

    Why fact-to-fact is not recomended on your approach: 

    • Wrong totals – different grains cause row duplication and inflated sums.
    • Confusing filters – filter direction gets unpredictable.
    • Slower – Power BI's engine is built for star schemas.
    • Hard to maintain – nobody trusts the numbers as the model grows.

    The recomended workaround: Star Schema: 

    • Facts connect only to dimensions (Date, Product, Customer…).
    • Facts never connect to facts.
    • Relationships: one-to-many, single direction, Dim → Fact.
    • Compare facts (Sales vs. Budget) through shared dimensions.

    Dim_Date ─┬─► Fact_Sales
                       ├─► Fact_Budget
                       └─► Fact_Inventory
    Dim_Product ┘ (shared across all)

    What to discuss with your data engineer: 

    1. Build shared dimensions (Date, Product, Customer).
    2. Remove fact-to-fact relationships.
    3. Connect each fact to the shared dimensions.
    4. Keep relationships single-direction.
    5. Compare a cross-fact measure before/after old totals were likely inflated.

    Exception: header/detail like Sales_Header → Sales_Lines is okay.

     

    Reference links: Start Schema Guidance


    Thanks,
    Srikanth Cheri.