• I'm inclined to agree with Mauro - to me it makes more sense to have the Promotion start and end date in the Promotions table, not the PromotedProducts table.

    That then leaves the PP table design in a simpler state when you're asked to implement multiple pricings on the same product (i.e Buy 2 get 1 free OR Buy 6 get 4 free. Marketing departments do come up with this insanity!) which DO belong in the PP table.

    This would also make your reporting easier, I think.

    Well written article though, very easy to read and 100% clear in its delivery.