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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
vkedd
Regular Visitor

Fact / Dimensional Table Approach

Hey Folks,

 

Trying to create a quick Power BI dashboard to show some folks - having a little trouble on determing the right approach for the Dimensional / Fact tables. I started with a spotify data table where it listed song metadata and various ratings. I decided that the best approach was to split this into 3 tables - 1 fact table and 2 dimensional tables (potentially one additional bridge table)

 

Would someone provide some needed input on how they would handle this / if I am taking the right approach for the data I have.

 

 

Approach 1:

vkedd_2-1748978505962.png

Slicers on the various visuals appear to work fine - however including the fields from BOTH dimension tables will break the visual unless one of the dimension fields is using summarization. Not a big issue as these Dim tables would generally be used to filter the fact table and not included in tables / visuals.

 

Note: I can change the relationship to many-to-many and it will provide same results as approach 2

 

Approach 2:

vkedd_3-1748978961079.png

This appears to work better than Approach 1, I can use fields from every dimension table on a visual without a relationship error. This uses a bridge table to connect to the fact table. Once again, in this scenario, the artist and genre fields would only be used on the slicers since the original fields were delimited.

 

Snippet of source data:

vkedd_4-1748979497975.png

 

Happy to elaborate or further explain setup / goal.

1 ACCEPTED SOLUTION

I see what you mean.

I would look into separate bridge tables for bridge_track_artist (join on artist_id or artist) and bridge_track_genre (join on genre_id or genre). May require additional modeling work.

This would get rid of many to many but honestly, I'm not sure how much benefit you'll get from this, outside of knowing you've built a "best practice" model.

 

Have I solved your problem?
Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;).
xOIEmaj

If you found this post helpful, please give Kudos.
It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen.
If you find my signature vaguely amusing, please give Kudos.
image
fabric-SUbadge
Proud to be a Super User!

View solution in original post

7 REPLIES 7
v-lgarikapat
Community Support
Community Support

Hi @vkedd ,

Thanks for reaching out to the Microsoft fabric community forum.

@KNP , @d_m_LNK , 

Thanks for your prompt response

 

I wanted to follow up and confirm whether you’ve had the opportunity to review the information  provided. Should you have any questions or require further clarification, please don’t hesitate to reach out.

If you are still encountering any challenges, we would be more than happy to assist you further.

Thank you for being an active member of our community.

Best regards,
Lakshmi Narayana

Hi @vkedd ,

If your issue has been resolved, please consider marking the most helpful reply as the accepted solution. This helps other community members who may encounter the same issue to find answers more efficiently.

If you're still facing challenges, feel free to let us know we’ll be glad to assist you further.

Looking forward to your response.

Best regards,
LakshmiNarayana.

Hi @vkedd ,

 

As we haven’t heard back from you, we are closing this thread for now. If you are still experiencing the issue, please feel free to create a new thread we’ll be happy to assist you further.

Thank you for your patience and continued support.

If you found our response helpful, kindly mark it as Accepted as Solution so that others with similar queries can benefit from it.

 

Best regards,
Lakshmi Narayana

d_m_LNK
Resolver III
Resolver III

To me the song table is it's own dimension and the fact table would be more along what songs were played over a period of time.  The songs themselves are really dimensions and the plays of the songs would be the facts for this data in my opinion.  

KNP
Super User
Super User

Your Artist and Genre dimensions should join fact tables 1 --> many. (Always 1 to many from dimension to fact)

 

I'm not sure I would have a Track dimension but I've not explored Spotify data, so I don't currently know what options are available for joins, i.e. is there an artist_id in the data.

 

Have I solved your problem?
Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;).
xOIEmaj

If you found this post helpful, please give Kudos.
It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen.
If you find my signature vaguely amusing, please give Kudos.
image
fabric-SUbadge
Proud to be a Super User!
vkedd
Regular Visitor

How would that one-to-many dimension table apply here though? A genre dimension table could never be a one-to-many as songs can have multiple genres.... same thought process for artists.

 

Maybe this cannot be set up in traditional star-schema format as the fact table does not have duplicate IDs - just one entry per song.

 

 

I see what you mean.

I would look into separate bridge tables for bridge_track_artist (join on artist_id or artist) and bridge_track_genre (join on genre_id or genre). May require additional modeling work.

This would get rid of many to many but honestly, I'm not sure how much benefit you'll get from this, outside of knowing you've built a "best practice" model.

 

Have I solved your problem?
Please click Accept as Solution so I don't keep coming back to this post, oh yeah, others may find it useful also ;).
xOIEmaj

If you found this post helpful, please give Kudos.
It gives me a sense of instant gratification and, if you give me Kudos enough times, magical unicorns will appear on your screen.
If you find my signature vaguely amusing, please give Kudos.
image
fabric-SUbadge
Proud to be a Super User!

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

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

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

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