I've started modeling what should be my first DV driven data warehouse. After reading both books, super charge.. and dv 2.0.., I took a swing at our use case.
The source system involved in this use case is a service management system used for registering customer cases (Ticket) including related information like, Contract, CI, Service and Customer.
In the source system I've identified the following relations:
Ticket > CI (1:n) NOTE: 1 CI is always marked as primary CI
Ticket > Service (1:1)
Ticket > Customer (1:1)
Ticket > Contract (1:1)
I started by linking all the hubs (Ticket, CI, Service, Customer, Contract) together with one single link (Service Request). But this will not do the trick since a Ticket can have multiple CI's (1:n) and I'll end up by storing duplicate information in case a Tickets belogns to multiple CI's.
So I'm struggling to find the best DV approach which will not compromise the DV standard. So far I came up with two alternatives but I'm unable to identify the consequences...
1. Seperate links between hubs
Model seperate links between the hubs, but this doesn't fit the grain of the source system. Becasue when a new ticket is stored in the system the relations listed above are stored.
2. Seperate link between Ticket and CI
Model a Service Request link to link Ticket, Service, Customer and Contract, and a seperate link between Ticket and CI
Another question is, how can I solve this problem. What kind of question should I ask myself or the business? What information can be used from the source model to solve this?