Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Vanchy_Liao
Resolver I
Resolver I

Model design issue For Many Dimension and Fact Table

Hi Everyone,

 

I am using Database Table & View to construct Power BI Model.

My goal is combining multiple dimension tables into one dimension table to control all the fact tables.

 

There are two benefits to me:

1. Cleaner modeling picture, because the relationship line between models will be in good order

2. By setting cross filter direction to "Both" between dimension table and meta table, it will gain better performance on the interaction of each slicer

 

The ideal model picture is like below:

dim1      dim2     dim3

    |             |            |

    | <->- meta -<->|

                  |

    |¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯|

fact1     fact2     fact3

 

The Schema is like below:

1. dim1: dim_id1, attr1

2. dim2: dim_id2, attr2

3. dim3: dim_id3, attr3

4. meta: meta_id, dim_id1, dim_id2, dim_id3

5. fact1: meta_id, value

6. fact2: meta_id, value

7. fact3: meta_id, value

 

My Problem is that:

1. If I use a view to represent meta_table, I have to union all the fact tables and it will be performance tragedy when refreshing data. (every fact table near 1 million rows)

2. If I use a table to represent meta_table, it will face the meta_id updating issue when fact tables inserting new rows or deleting rows.

 

Is there any good suggestion to help me achieve these?

1. slicer can cross filter easily

2. cleaner model

3. better performance when refreshing data

 

thank you for replying

 

1 ACCEPTED SOLUTION

@Vanchy_Liao , if you have an objective to restrict the slicer value because of another slicer refer to this video

https://www.youtube.com/watch?v=cyOquvfhzNM

 

In your case, you need a measure which from three facts. example

 

countrows(Fact1) +countrows(Fact2)  +countrows(Fact3) 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

View solution in original post

4 REPLIES 4
amitchandak
Super User
Super User

@Vanchy_Liao , You should try to be in Star Schema. 3 Dims can join with Three Facts. Do not merge or append unless that is the option 

 

https://www.sqlbi.com/articles/the-importance-of-star-schemas-in-power-bi/

https://www.youtube.com/watch?v=vZndrBBPiQc&feature=youtu.be

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hi @amitchandak ,

     I realize the importance of star schema, but I want the slicer with cross filter interations.

    How can I achieve this? 

 

    Thanks for your reply ^^

@Vanchy_Liao , if you have an objective to restrict the slicer value because of another slicer refer to this video

https://www.youtube.com/watch?v=cyOquvfhzNM

 

In your case, you need a measure which from three facts. example

 

countrows(Fact1) +countrows(Fact2)  +countrows(Fact3) 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

@amitchandak ,

Thank you for your advise and I decide to change my model into star schema

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors