Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
We have different products sold through different channels with one product per channel. Each channel has their own unique identifier for the end client but they are different across channels.
In my database I need to map the different channels' unique identifiers to our unique identifier for the end client so we can see who is purchasing multiple products through different channels.
So I have one table, ClientInfo, with a list of the end clients and our unique identifier, OurUniqueID.
| OurUniqueID | ClientName |
| 1 | Sherlock Holmes |
| 2 | John Watson |
Now, I need a table to map the different channels' unique identifiers to our unique identifier. Should I do that in a tall, narrow table with a row for each channels' unique ID (see below) or a short, broad table with a column for each channel which will necessarily have many null entries for the channels where the client doesn't have an ID.
Tall, Narrow table:
| ClientMapKey | ClientName | OurUniqueID | ChannelID |
| 1 | Sherlock Holmes | 1 | 123 |
| 2 | Sherlock Holmes | 1 | 800175 |
| 3 | John Watson | 2 | 987 |
| 4 | John Watson | 2 | ABC456 |
Short, broad table:
| ClientMapKey | ClientName | OurUniqueID | Channel1ID | Channel2ID | Channel3ID |
| 1 | Sherlock Holmes | 1 | 123 | 800175 | null |
| 2 | John Watson | 2 | 987 | null | ABC456 |
Solved! Go to Solution.
It's better to create a table like your first one.
| ClientMapKey | ClientName | OurUniqueID | ChannelID |
| 1 | Sherlock Holmes | 1 | 123 |
| 2 | Sherlock Holmes | 1 | 800175 |
| 3 | John Watson | 2 | 987 |
| 4 | John Watson | 2 | ABC456 |
Since each client may have dynaic number of Channels, it's not a good practice to make one column for each Channel. You can hardly analyze fact data on Channel level. Please refer to: Third normal form
Regards,
It's better to create a table like your first one.
| ClientMapKey | ClientName | OurUniqueID | ChannelID |
| 1 | Sherlock Holmes | 1 | 123 |
| 2 | Sherlock Holmes | 1 | 800175 |
| 3 | John Watson | 2 | 987 |
| 4 | John Watson | 2 | ABC456 |
Since each client may have dynaic number of Channels, it's not a good practice to make one column for each Channel. You can hardly analyze fact data on Channel level. Please refer to: Third normal form
Regards,
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 52 | |
| 38 | |
| 37 | |
| 19 | |
| 18 |
| User | Count |
|---|---|
| 67 | |
| 67 | |
| 34 | |
| 32 | |
| 29 |