I am creating a data warehouse from a store database and I have a question regarding the design of my dimensions and facts.
In the store database a table exists for Person, Person_Address and Person_Address_Type. These are linked by another tabled name Entity_Address_ID which links the three tables by their primary keys to give details on what a person's address is and what type of address it is.
My question is, should I create a dimension for all three tables, and a fact-less fact table to link them together or should I de-normalise my dimensions and add to each dimension a foreign key for the address and address type they are linked too?
Here is a very quick UML of what the current database looks like to provide clarification
You should create a Person dimension with a set of address attributes (mailing address, billing address, etc), i.e. denormalize all this data and load it into a single table.