According to dimensional modeling theory, a fact table's primary key should be composed of multiple foreign keys, one from each dimension table. By definition, a primary key is unique. But if the fact table contains multiple transactions per day, how does one maintain uniqueness using a time dimension whose lowest grain is at the day level? Kimball's book, The Data Warehouse Lifecycle Toolkit, recommends breaking off the time portion of the fact timestamp, leaving the date portion to construct the surrogate time dimension key. But this answer does not maintain the uniqueness of the fact table's primary key (if it is only composed of the foreign keys)! What do you suggest?

Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access