• What you have, from the description, is what is called a slowly changing dimension.  In other words, the information can change, but not all that often.

    You have to make a decision on the design.  For example, if the patient is a woman and she gets married.  Do you want her old name as well as her new name?  In the reporting of information for a specific time period, do you want to use the name she was using at the time or her current one?

    If you are going to use both, then you will have to put effective dates in the dimension table that holds the patient information and use them to do the join for information in your fact tables.

    If you are going to use the current but want to have the other available only as historial data, you would create a "snowflake" table to store the historical data with the date it was changed.  Your dimension table would only contain the current information