I am designing a data warehouse that uses the Data Vault model. There is an entity in my data warehouse called Specialty. There is a Lookup Table for these Specialties based on their codes that has a one-to-one mapping from Specialty_CD to Description. There is a history of data entries for this Lookup Table (as Specialty Codes can change meaning) and all of the Satellite Tables in my vault.
I've come across a curious case where I want to link another entity in the Data Vault called "Professional" to the Specialty entity, where a professional can have multiple specialties. However, there is no Hub for the Specialty Entity. My Current solution simply has a Professional Hub which holds Business Keys and Business Key Hashes for each professional, a link table that maps Professional BK Hashes to the Specialty Codes of the specialties that the professional practices, and a lookup table from Specialty Codes to description. The catch here is that the link table is connecting a hub to a lookup table, instead of another hub. I can't help but feel like this breaks the Data Vault model. Does this break the rules of the Data Vault model? Does this ruin the normalization of my whole model?
I feel like Creating a Hub for The Specialties would result in an extra join for data retrieval. Since the Specialty Codes are already unique identifiers of specialty descriptions, I'd rather just have a single Lookup Table for this specialty entity as opposed to a hub and extra satellites for the Specialty entity that I don't need. Especially because it is only in the data warehouse to serve the purpose of definition and description of a specialty code.
Any suggestions for this situation are welcomed. Is the data vault ruined in this scenario by linking a hub to a lookup table? Is it worth the overhead and additional joins on retrieval to create a hub and satellites for this Specialty Entity?
Thank you!