Sure it's possible. But will you need to maintain the relationship between pack, brand and Company? If so, you'll need to have a relationship between the rows to tie the pack to it's appropriate brand and the Brand to it's appropriate Company. You'll also need to take into consideration that brands can change companies. (Think mergers and acquisitions). So you might want to consider carrying effective_dates as part of the definition of your dimension. My sense is you'll make the loading of the facts more challenging because each fact will need to reference multiple rows from the product dimension to get the pack, brand and company lookups correct. The development queries against the fact table(s) that refer to this product dimension will most likely be more challenging and frustrating to the end-users a well.
Another approach might be to break Brand and Company out as a dimensions for their own. Let the creation of the facts bring the right dimension tables together at each FACT row as you process the transactional data for sales, order, inventory, etc.
For More Information
- Dozens more answers to tough data warehousing questions from Mike Lampa are available here.
- The Best Data Warehousing and Business Intelligence Web Links: tips, tutorials, scripts, and more.
- Have an DW tip to offer your fellow administrators and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical data warehousing questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, SQL Server, DB2, object-oriented and data warehousing gurus are waiting to answer your toughest questions.
Dig Deeper on Oracle business intelligence and analytics
Related Q&A from Mike Lampa
When trying to design a data warehouse, we often try to model the database on the operational data model. Are there any guidelines in trying to ... Continue Reading
What is a surrogate key in a table? Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.