I have one case want to discuss with everyone.
The following picture is the data vault model and source data will flow into the existing table. But I am not sure how should I define this table in data vault standard. I use non-hash key to implement this function.
User can create a new STAFF_NUMBER, they can modify ROOM_NUMBER freely.
STAFF_NUMBER and ROOM_NUMBER are different business concept area.
I don’t sure what kind of entity should it belong to, because the following reasons:
1. If it assume that it is Link:
Primary Key is: STAFF_NUMBER and ROOM_NUMBER
Before new data load into table, stored procedure will get the latest TIMESTAMP. And judge that does STAFF_NUMBER and ROOM_NUMBER is difference than previous records. In the above picture, it will judge that record (12345, ROOM2) had existed. It doesn’t insert new one.
2. If it assume that it is No-Historized Link:
Primary Key is: STAFF_NUMBER, ROOM_NUMBER and TIMESTAMP
TIMESTAMP will be refreshed for each records if source table refresh. It will insert duplicated Records.
3. If it assume that it is Satellite:
Primary Key is: STAFF_NUMBER
But it is associated with ROOM_NUMBER, it should keep the relationship in this entity.
Can you share some thoughts how let the data flow into table in this case? I really cannot explain it well for this case.