Problem solve Get help with specific problems with your technologies, process and projects.

The relationship between dimensions

My question is about relationships between dimensions. Let's say we have the following dimensions: customer, campaign and order. The campaign is a source of traffic, like referrer URL. When the customer signs up for the site, we register his referreral campaign id. Customer purchase is associated with some campaign as well. The campaign dimension has about 50 attributes. I don't want to roll campaign dimension with customer. Is a foreign key from the campaign to customer dimension a good idea?

Seems like you have pressed the campaign dimension into "multi-duty". On the one hand, During sign up, you are...

tracking the referral (what was the influence that attracted the customer and/or got the customer to register). On the other hand, you are tracking whether promotional campaigns were taken advantage of by the customer when an order was placed/purchase was made.

When a customer signs up, does the "referral campaign" also get associated to any orders placed? Seems like the referral is an attribute of the customer registration event. Can a customer register more than one time? If so, maybe you need an event fact? If not, perhaps the referral should be an attribute about the customer. If you are managing campaigns for different intended reasons (generating registrations vs. generating sales), perhaps you have two different campaign dimensions? If that is not reasonable for your business, I am not seeing anything particularly "bad" about carrying a foreign key from customer to campaign.

Hope this helps you in your design.

For More Information

This was last published in February 2004

Dig Deeper on Oracle database design and architecture

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.