Design advise needed - master data services, use sparse tables or multiple tables?

  • Im creating a master data model and have a decision of what direction to take.

    The entity is Person. There can be multiple source systems for the Persons Entity. e.g. HR system, applicants system, Benefactors system etc.

    The plan initially was to have an overall Person entity and a person type entity. Anything from the HR system would be an Employee, anything from the applicants system woudl be an applicant.

    The person type is necessary as a person can change their type, i.e. an applicant can become an employee, or benefactor or one of another 10 types.

    The issue is how to deal with data specific to each system. My choices as i see them are:

    1. Lots of columns sparsly populated.

    Have a column for each piece of data. For a person from the HR system all columns relevant to that type would be populated but the rest would be null, likewise for all other persons from other systems.

    2. Person table and then a table for each system for its individual specific data.

    This is doable but makes the model larger and makes loading a little more complex.

    3.EAV table.

    I generally dont like this idea, particularly in relation to master data as it will most likely limit my abilities when it comes to cleansing in the future.

    4. Leave all system specific data in its own system

    and just have downstream apps pull the system name and local identifier for that person from master data, and the rest from the source system.

    Im trying to make it as future proof as possible, and so would appreciate some advice based on experience from forum members.

    Thanks for any help provided.

    (N.B - i know this is in the same vein as a similar question i asked here a few weeks ago, but is different enough that id like fresh input)

Viewing 0 posts

You must be logged in to reply to this topic. Login to reply