You are in the midst of building the underlying data model to support a large business intelligence project. This type of data model goes by many names (such as a corporate data model or enterprise data model), and crosses departments and broad functional areas. There is a need for abstraction on this model to accommodate bringing “things” together from different departments, such as the Party model below which allows reconciling that Bob the Customer is the same person as Robert the Supplier.
Although this Party structure is flexible and therefore easily stores data from different areas, there is an ongoing debate as to where to capture the definitions for the terms that are now abstracted. For example, the Customer entity has been replaced on this model with a Role Type Code of ‘5’ which means a Customer. Where do we capture what a Customer is? More generically, where should we capture the definitions for the concepts we abstracted?