iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
In Power BI, a schema is the arrangement and role of your tables, a relationship links separate tables so filters can flow between them, and a merge combines query data during preparation. For most reports, start with a star schema: dimensions describe entities and filter or group data; fact tables record events or observations to summarize.
What do schema, relationship, and join mean in Power BI?
Schema: how tables are organized
A schema describes the structure of a model and the roles its tables play. In a common star schema, dimension tables hold descriptive information—such as customer, product, or date attributes—while fact tables hold events or observations, such as sales. Dimensions help people filter and group; facts provide the rows that measures summarize. Microsoft explains this design in its star schema guidance.
Relationship: how model tables interact
A relationship connects columns in separate tables in the Power BI semantic model. It does not physically combine those tables. Instead, it defines how filters can propagate between them, affecting which rows contribute to a visual or calculation. In a typical star schema, a dimension filters its related fact table. See Microsoft’s documentation on understanding relationships in Power BI Desktop.
Merge: how query data is combined
A Power Query merge combines data while preparing queries and can add columns from one query to another. It is closer to a database join than a model relationship: the result is shaped query data, rather than separate tables linked by filter behavior in the model. Microsoft discusses when to consider merging in its one-to-one relationship guidance.
#1 Best Overall
How do you choose between a relationship and a merge?
Choose based on the outcome you need, not on a goal of reducing table count. Keep tables separate and relate them when they have distinct roles in the model and should participate in filtering and grouping independently. Merge when you want to bring columns into one prepared query.
- Use a relationship when separate dimension and fact tables should remain distinct and filters need to flow through the model.
- Use a merge when query preparation should produce one shaped table with columns brought in from another query. Check which query has the complete row set and select a join type that preserves it. Microsoft’s one-to-one guidance illustrates a left outer join that retains all rows from the complete query and adds matching data from the other.
A merge can change the rows or columns produced by preparation; a relationship instead controls how separate model tables interact. Those are different jobs, even if both involve matching columns.
Rank #2
What do relationship cardinality and filter direction control?
Cardinality: how key values match
Cardinality describes how values in the relationship columns correspond. The usual star-schema pattern is one-to-many: a dimension has one row for each key, while the related fact table can contain many rows with that key. The key on the “one” side must be unique. If the table you want to use as a dimension has duplicate keys, it cannot serve as that unique one-side key without a suitable modeling change.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Before creating a relationship, establish what one row means in each table. Keep each fact table at a consistent grain—the level of detail represented by each row—and identify the dimension key and corresponding foreign key in the fact table. If a dimension lacks a unique key, Microsoft’s star-schema guidance describes adding a surrogate or index key and carrying it into the many-side data.
Filter direction: where filtering can travel
In ordinary star-schema models, begin with the common single-direction behavior: filters flow from dimensions toward facts. Bidirectional filtering can be appropriate for some model patterns, but enabling it broadly can create ambiguous routes when more than one path connects tables. When multiple filters reach a fact table, their conditions combine, so relationship paths and settings can affect a result. Microsoft’s relationship management guidance explains how to create and manage those settings.
When should you use a many-to-many relationship?
Many-to-many cardinality is useful when values on both sides of a relationship can repeat. It is a real modeling case, but it should not be the default shortcut for connecting two fact tables. Direct fact-to-fact many-to-many relationships can make flexible filtering and grouping harder and may conceal data-integrity problems.
Rank #4
For common reporting needs, prefer a star schema in which dimensions relate one-to-many to facts. When the data genuinely needs many-to-many matching, first understand the entities and row grain involved; a dimension or bridge table may provide a clearer route for filters. Microsoft’s many-to-many relationship guidance covers the distinct cases and trade-offs.
How to build and check a beginner-friendly model
- Define the grain. For each source table, write down what a single row represents. Avoid mixing event-level facts with descriptive attributes without a clear reason.
- Identify keys. Find the unique key for each dimension and the matching foreign key in the fact table. Check that the proposed one-side key is unique.
- Arrange dimensions and facts. Use dimensions for descriptive fields used to filter or group, and facts for observations or events that measures summarize.
- Review relationships in Model view. Confirm the intended cardinality and filter direction. Power BI can attempt to detect relationships, but review any detected relationship against the meaning of the data rather than accepting it automatically.
- Merge only for a query-shaping need. Decide which query’s rows must be preserved, choose the appropriate join type, and verify the resulting rows and columns.
What to check when a visual shows an unexpected result
A relationship issue is one possible cause, not an explanation for every incorrect or empty visual. Check the model in a deliberate order:
- Key uniqueness: Does the column on the “one” side actually contain unique values?
- Matching values: Do the fact-side foreign keys match the dimension keys, or are values unmatched?
- Relationship state: Is the intended relationship active?
- Cardinality and direction: Do they fit the actual data and the intended filter path?
- Ambiguous routes: Can filters reach the same table by more than one path?
- Row grain: Do the tables represent compatible levels of detail for the calculation?
When the model is correct but a result still looks wrong, investigate the visual, measures, and source data as well; relationship settings are only one part of a report’s behavior.
Quick Recap
A quick decision framework
| Question | What to choose or check |
|---|---|
| Should the tables remain separate and interact through filters? | Use a model relationship. |
| Should one prepared query gain columns from another? | Use a Power Query merge and preserve the intended complete row set. |
| Does one table have a unique key and the other repeat that key? | A one-to-many relationship is the common dimension-to-fact pattern. |
| Do keys repeat on both sides? | Confirm that the data is genuinely many-to-many; consider a dimension or bridge design before connecting fact tables directly. |
| Are filter paths unclear or results surprising? | Review key quality, relationship activation, cardinality, direction, and alternate paths. |
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

