I am a newcomer to data warehouses and have what I hope is an easy question about building a star schema:
If I have a fact table where a fact record naturally has a
Time is almost always a dimension in a star schema.
"In effect" suggests that there is a start and end date for a Promotion.
So a Promotion might itself be a fact that has a start and end date reference to the Time dimension.
Maybe with a model like this you could have a JOIN table to relate Sale to Promotion in a many-to-many fashion between facts.
"Many, many" Promotions - yes, but how large is that? One per day means 365 records per year. I'll assume that Promotions are associated somehow with Products or Categories. A Sale would have a timestamp and multiple Products.
You have to store them somewhere, sometime or your model falls apart. Why the reluctance to model Promotion that way?
My advice would be to not worry about the size of the data and concentrate on modeling the problem as best you can. Get the logical model right first, then worry about the physical model and the data sizes.