Most of the modelling work is done in the Model View of Power BI. The tables are arranged in accordance with the model’s Filter Flow, where filter context flows downstream.
Data modelling is not just about establishing connections between individual data tables, but to also define how the data will appear in the report view (i.e. front-end).
<aside> <img src="/icons/report_orange.svg" alt="/icons/report_orange.svg" width="40px" />
Note:
If a table connection is established on a commonly identified column, but the data is still not appropriately grouped by a set dimension in the report view, check to see if the data type is the same for the common column in both tables.
</aside>
The modelling steps are mentioned as follows:
Sales Data and Returns Data can’t be directly connected (no PK/FK relationship)
Connection can be established via related lookups, allowing filtering using fields from any shared lookup tables
Filtering/Grouping via Customer Lookup won’t be possible since it isn’t shared, and Filter Flow between the two facts tables can’t be established.
<aside> <img src="/icons/report_orange.svg" alt="/icons/report_orange.svg" width="40px" />
Note:
Bi-directional filters can sometimes override the problem of improper filter flow. However, they should be avoided because they can lead to errors that can be difficult to track! They can also lead to ambiguity → multiple/conflicting paths of filter flow.
</aside>
Hid FK in report view from facts tables, to prevent filter flow related errors for the front-end users