Date size is a special option - having a date (2011-12-07) or an integer associated with a date (20111207) for the primary key is actually preferable. This allows a good separation (by date) of the fact table.
For other types of sizes it is recommended to use surrogate (whole) keys.
As a template, each size usually has entries for unknown, not entered, error, ... , which are often mapped to keys 0, -1, -2, ...
In this regard, most often finding a date with an integer (20111207) as the primary key instead of the date is a bit random to represent unknown, not entered, error, ... with a date type key.
source share