avjoshi
IS-IT--Management
- May 12, 2003
- 221
I am having tuff time explaining to my client to use surrogate key for the dimension tables in the warehouse.
We are creating a small data mart. Fact table contains roughly 50,000 rows. Daly increment is about 500 rows. The largest dimension table has 3,000 rows.
Client wants to see the natural ‘dimension’ keys into the fact table. According to them ninety percent of the time end users will query the facts based on the natural key and it’s very rare that user will ask for additional information from dimension table. By storing natural key in the fact tables we will save unnecessary joins and complications that may arise because of that. Dimensions are ‘type 1’.
On the face of it the argument seems logical if what they say about user queries is true. My architectural instincts tell me to use surrogate keys.
I wanted your professional opinion. What do you think? Should I go with the flow or are there any other compelling reasons I should avoid doing it?
Anand
We are creating a small data mart. Fact table contains roughly 50,000 rows. Daly increment is about 500 rows. The largest dimension table has 3,000 rows.
Client wants to see the natural ‘dimension’ keys into the fact table. According to them ninety percent of the time end users will query the facts based on the natural key and it’s very rare that user will ask for additional information from dimension table. By storing natural key in the fact tables we will save unnecessary joins and complications that may arise because of that. Dimensions are ‘type 1’.
On the face of it the argument seems logical if what they say about user queries is true. My architectural instincts tell me to use surrogate keys.
I wanted your professional opinion. What do you think? Should I go with the flow or are there any other compelling reasons I should avoid doing it?
Anand