Which Columns Belong in DimProduct?
Short answer
BCF Include ProductID, ProductName, and ProductColor in DimProduct as the product key and descriptive attributes.
Question

You plan to load the data into a dimensional model and implement a star schema. From the original flat table, you create two tables named FactSales and DimProduct. You will track changes in DimProduct.
You need to prepare the data.
Which three columns should you include in the DimProduct table? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
Key Takeaways
The question tests dimensional modeling: a dimension table carries the business key plus descriptive attributes, and the trap is pulling in fact-side columns like Date or SalesAmount, or excluding ProductID.
When converting a flat sales table into a star schema in Microsoft Fabric, dimension tables hold descriptive product attributes while fact tables hold measures and transactional keys. The correct DimProduct columns are ProductID, ProductName, and ProductColor, leaving Date, TransactionID, and SalesAmount in FactSales.
Common mistake: The most common wrong pick is BCE (swapping ProductID for SalesAmount); learners confuse a numeric measure in FactSales with a product descriptor, breaking the star schema's key relationship.
Expert Analysis
Why the Answer Is Correct
ProductID is the business/primary key that joins DimProduct to FactSales, and ProductName and ProductColor are descriptive attributes about the product itself—the exact contents of a dimension table in a star schema. As Wipag noted, ProductID is the "Primary/business key of the dimension. Used to join with the fact table (FactSales)." Every value in these three columns describes a product, independent of any individual sale, which is precisely what dimensional modeling requires for a dimension.
Why the Other Options Are Wrong
Date, TransactionID, and SalesAmount are all transaction-level facts: Date and TransactionID identify when and which sale occurred, and SalesAmount is a additive measure—these belong in FactSales, as AndrewsOtis noted, "The others are Fact items." Date specifically cannot seed change tracking here, since shmmini observed that with SCD tracking "you have to create your own Date Column" rather than reusing the transaction date. Option E, SalesAmount, is a classic distractor because it is numeric product-related data, yet it measures the sale rather than describing the product.
Community Comment Notes
The comments converge on BCF, with the top-rated explanation from QAZdbarhate12345678 walking through ProductID as unique identifier, ProductName as descriptive attribute, and ProductColor as a further attribute. One commenter on the fence, fdsdfgxcvbdsfhshfg, worried that "it won't allow us to track changes" because a true SCD type 2 dimension needs surrogate keys and date-stamped versioning columns. That is a fair design caveat, but those SCD columns would be generated during transformation, not taken from the original flat table, so BCF remains the best selection among the given options.
Exam Strategy
For star schema questions, sort every column into two buckets: things that describe an entity (dimension) versus things that describe an event's quantity, time, or ID (fact). If a column would stay the same for every row of a given product, it belongs in the dimension table.
Frequently Asked Questions
Why can't SalesAmount or Date be part of DimProduct?
How do I track changes in DimProduct if no date column is included?
Discussion 18 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 18
-
QAZdbarhate12345678 👍 13Columns to Include in DimProduct ProductID - This is the unique identifier for each product and acts as the primary key in the DimProduct table. ProductName - Contains the name of the product, which is a descriptive attribute. ProductColor - Contains the color description of the product, which is also a descriptive attribute.
-
Tuki93 👍 4I believe the provided answer is correct
-
shmmini 👍 3in this case, the transaction date is referenced. you cannot use it as it is. If you have to track SCD, you have to create your own Date Column, and populate it differently, not from this table
-
fdsdfgxcvbdsfhshfg 👍 3BCF seem to be correct, but it won't allow us to track changes so on a fence with these answer, some additional logic coming from Date column is required
-
Wipag 👍 2✔ F. ProductID Primary/business key of the dimension. Used to join with the fact table (FactSales). ✔ B. ProductName Descriptive attribute of the product. Typically shown in reports. ✔ C. ProductColor Another descriptive attribute. Useful for slicing data and analysis.
Show 13 more comments
-
maham 👍 2The dimension table has to track the changes also. Then date field is important for SCD. So Product color takes second priority in this list
-
renan_moraes37 👍 2For dimension needs to be every information about the products like Color and name, also the key which is productID
-
Madhu2023 👍 2BCF are the attributes of Product. TranId , Date and SalesAmt quaify for fact table instead
-
AndrewsOtis 👍 2Correct BCF It is relation with a Dimension table of Products. The others are Fact items
-
DarioReymago 👍 2ProductID ProductName ProductColor
-
balanceBananes 👍 2Everything about the products
-
smanzana 👍 2Correct BCF
-
Kiracloud 👍 1- ProductID acts as a unique identifier for each product (primary key). - ProductName provides a descriptive name, useful for reporting and analysis. - ProductColor adds valuable categorical information, potentially useful in filtering and segmentation. Other columns like Date, TransactionID, and SalesAmount are better suited for fact tables (FactSales), since they contain transaction-specific details rather than product attributes.
-
robertlavigne 👍 1Date: Should be in the FactSales table ProductName: Attribute of the product and belongs in DimProduct ProductColour: Attribute of the product and belongs in DimProduct TransactionID: Belongs in the FactSales Table Sales Amount: Belongs in the FactSales Table ProductID: Will be the primary key for DimProduct
-
yue_young 👍 1Please also note that the Date column may not be the product modified date.
-
alqazqzy.asseel 👍 1All product information without transaction, sales, or date columns
-
oose 👍 1The trabsactio the date and the sumbshould be the other table
-
Josekonoor 👍 1dimProduct -> Unique Product
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.