I’m designing a Kimball-style data warehouse. My fact table has the grain: 1 row per user per transaction. Each transaction ID appears only once in the fact table.
The transaction itself has ~15 descriptive attributes (type, status, channel, method, flags, etc.). If I move these attributes into a transaction_dim table, it results in a 1:1 relationship between the fact and the dimension, which doesn’t seem like a proper dimension (since dimensions normally have a 1-to-many relationship with facts). No other fact tables refer to this dimension.
Question:
If all of these descriptive attributes exist at the same grain as the fact (one value per transaction), is it correct Kimball practice to store all of them directly in the fact table instead of creating a 1:1 “transaction dimension”?
I’m trying to confirm whether keeping all transaction-level descriptors in the fact table is the right modeling choice, or if there is a better dimensional modeling pattern for this scenario. Thank you!