13.8 Product
Products are often thought of as rather straightforward
things in data models. However, consider the following:
• The price of the same product will vary from store to store
in the same supermarket chain.
• There is the brand name the product is sold as.
• There is usually a specification that a product claims to con-
form to.
Each of these is clearly different, but each is often referred to
as a product by those who deal with them. So what are they,
how are they distinguished, and how do they relate to each
other?
In addition to this, there is the issue of ambigui ty. We use
the word “product” to refer both to individuals, “My car is a
product of the Ford Motor Company,” and to the class, “The
Focus model is a product of the Ford Motor Company.” In a
data model we cannot use the same term twice. In this case
I choose to use product in the second sense: it is a class of thing
rather than a particular individual, which I will refer to as a
product instance.
Product is a large subject area, and I am certainly not going
to cover more than a small corner of it here. I shall use an area
I am familiar with, oil products, as an example, but I will not,
for example, address variants and options, or formulation, or
manufacture, or testing. I will address the issues I outlined ear-
lier, which are widely applicable, even to products such as
aircraft.
If we start with a product as sold, then it will have a particu-
lar specification constraining what is supplied. At some point it
may become clear that the specification needs to change. Either
the specification is tighter than it needs to be to m eet the func-
tional requirements, or a different way has been found to meet
the same requirements, or you wish to offer enhanced function-
ality. Under these circumstances you consider it to be the same
product, but a different version. It is the version that carries the
detailed specification. This is illustrated in the Venn diagram of
Figure 13-12.
The dots correspond to individual product instances that are
manufactured and supplied for sale; I will call these a sales
product. I will call the different versions sold as the sales prod -
uct the sales product version. The usual distinction between a
version and a variant is that varia nts are available for sale at the
same time, so some of their differences are apparent to the
buyer, whereas versions are available for sale sequentially at a
164 Chapter 13 INTENTIONALLY CONSTRUCTED OBJECTS