I would like to get your opinion on approach of implementing specific business requirement.
There are 2 linked business Offer and related Supplier.
Every supplier undergoes regular assessments and the results are captured in KnowYourSupplier object,
which is a satellite of a Supplier with child dependent key (AssessmentDate), supplier might have multiple assessments valid at different times.
The requirement is to link Offer object to the KnowYourSupplier entry, which was valid at time when offer was created.
How to model it in Data Vault?
- Would you capture AssessmentDate in a business satellite of the Offer, then allow for join between satellites of Offer and Supplier?
- Treat KYS rather as business concept, create hub and then a business link?
- Or is it rather a requirement to be resolved in Information Mart (part of the definition of a Dimension)?
You will be mixing terms here
Creating more tables just to join on? Seems counterproductive
Depends, how are you matching the two?
If there is a relationship between offer and supplier how are you matching this?
If this is sourced somewhere then why are you not considering a link table? A link might actually negate the need for a dependent-child key and the content about that relationship be stored in a link-satellite table.
Matching should be done by following Offer to Supplier link and finding the KYS assessment valid at the time the offer was created. KYS are created regularly, but not necessarily at the same time as the offers.
There is no source that provides Offer to KYS relationship, therefore direct link cannot be created.
If it is true that you need to infer the relationship, then a BV link is probably the right structure for that. As long as the business is happy to sign that off, ideally though — you should get the source to send you that as a record of fact
But how do I link Offer to a satellite of a supplier? Should I create some sort of business hub for KYS?
This requirement will repeat also for other concepts as well, e.g. Contract needs to refer to a KYS assessment valid on date when it was signed.
Hopefully Patrick will correct me if I’m wrong but the staging logic for your Business Vault link will provide the inferred relationship by ‘marrying’ the dates between the Offer and the Assessment Date in the KYS source and joining on Offer and Supplier. Then, the Link would potentially hold the Offer ID (I assume you have a Business Key vault and no hash keys), Supplier ID and a dependent child in the LINK of the AssessmentDate.
You then join from the LINK to the KYS satellite on the Supplier ID and AssessmentDate dependent child in the LINK to the same columns in the KYS SAT in order return the attributes relating to the Assessment.
That would be my thoughts based on your existing HUBs and SATs.
Please be aware that i’m relatively new to DataVault myself so i’m offering an opinion for discussion rather than an expert view.
@DVBeginner think about the hub in general — it is meant to be the representative of a business key, these always come fro ma source. i.e. you’ll never have business vault hubs.
Concur with @Carl ; because you’re inferring a relationship between hubs based on a business rule you say you cannot get from your source, this inevitably means you need sign off for that business rule and build a BV link to bring those RV hubs together. Link will take care of 1:M relationship (multi-active) and you can use an effectivity satellite to record which of those relationships are still active.