In source, I have two tables named Vendor_Address, which has the primary key Address_Id and other descriptive attributes like house_number, street, etc. And nother table in the source named Vendor_Email_Address which has the same primary key Address_Id and just one more attribute, Email_address. If I have to build the source data vault out of these two tables, my approach would be to create Vendor_Address as the hub, in which address_id would be the business key and attach Vendor_Email_Address as another satellite for Vendor_Address. Considering that for one business key, there would be only one hub.
Please suggest if this is right or wrong?
@Faris - the answer is as Dan Linstedt himself likes to say, “It depends.”
Things to consider to help you decide a good approach would be:
- What is the business use case?
- Have you captured the primary business concepts adequately?
- Does each vendor have more than one email address active at once? (Hint: If so, a separate multi-active satellite makes sense for the email addresses, in my opinion.)
- Is Address_Id a true business key? (How does the business refer to any given unique vendor?)
- Is Vendor_Address truly a business concept, or is it a relationship? (Hint: Can a vendor’s address change over time? Can a vendor have more than one address? Does address truly describe a vendor?)
If I am interpreting your description, you plan to build a Vendor_Address hub with two satellites, one of which captures the address information (low volatility) and the other which captures email address (possibly medium volatility or multi-active).
Given my questions above (meant to trigger some thought), do you believe you have a good design?