What is the thought process behind choosing a date as a dimension attribute or a fact table key to a date dimension?
In my specific instance I'm modeling contracts and we want to track the value and square meters of contracts according to:
- when the contract was signed
- when the contract started
- the date of the notice of termination
- terminationdate
Most contracts haven't been terminated so most contracts don't have a date for notice of termination or termination date.
The fact table contains the measures contract value and square meters.
Do these dates make more sense as attributes of the contracts or as keys to a date dimension? We want to be able to query and see the value of the contracts signed or terminated during an arbitrary time period. If I use a time dimension I get all attributes for it like months, quarters, tertials, years and so on which I guess is a advantage.
Would snow flaking the dates make even more sense, keep them as attributes in the contract dimension but relate them to the date dimension?