Warning: Creating default object from empty value in /home/johnnz/public_html/wp-content/themes/simplicity/functions/admin-hooks.php on line 160

The Phantom Entities of Customer and Supplier

It is amazing how much is spoken and written about Customer and Supplier, especially as they do not exist – they are Phantom Entities!  Read more at There’s No Such Thing as Customer.

Recently, in a response to a comment on The Pathology of Business & Data Modelling I was addressing this topic once again and thought it would be useful to produce some models that show how Customer and Supplier are in fact Roles played by the entity Party.

Derivable Roles

Customer and Supplier are actually derivable Roles, that is, their existance can be determined by looking at transactional data within the enterprise and, consequently, do not have to be declared.  A Customer is any Party to whom the enterprise has sold products or services.  A Supplier is any Party from whom the enterprise has purchased products or services.

Because they are derivable entities, they ought never be declared, as this could cause data inconsistencies.  Neither should they ever appear on a Logical Data Model!!

Declarative Roles

Some roles, such as Guarantor, Referee, Beneficiary, etc. cannot be derived and, consequently, need always be declared.

Knowing these structures will enable data modellers to aid the enterprise identify and manage their true Master Data Entities and avoid trying, and failing, to manage Phantoms.

Please Share

If you liked this post and think that it could be of value to a colleague or friend please feel free to share it by clicking on one of the social media links below


3 Responses to “The Phantom Entities of Customer and Supplier”

  1. Todd Everett April 5, 2012 1:10 pm #


    Thanks for the thoughtful reply to the previous post and for sharing these models. There is such subtlety to data modeling and traps we as modelers fall into without realizing it that cause problems. I had never before considered roles could be derivable, nor had I considered that “conceptual” data model could be an oxymoron. I know I had struggled greatly with defining what a “conceptual” model is and you have helped explain why!


  2. Richard Ordowich April 5, 2012 12:27 pm #

    Product is also a phantom entity. It includes some of the same attributes as party such as identity. A product is derived from raw materials if it is a physical object or as a set of resources if it is a service product Some products consist of both a physical object and service to maintain the object. Modeling products in this way provides the same flexibility as modeling party.

    • John Owens April 5, 2012 8:54 pm #

      You are quite right, Richard.

      One of the most difficult things for enterprises to do is the truly know what their ‘Product’ is. They think they do, until you ask them, “Which is your most profitable product?”

      They then realise that ‘Product’ is quite different from what they supposed. It is usually some physical element, packaged in a particular way, under a particular brand and, often, with some service element or guarantee included.

      The products of mobile telecoms companies are a point in question.


Leave a Reply