Design Tip: Defining a Customer
In today’s online, Web-based retail environment, a customer might not be a customer in the traditional sense, so you should make sure you understand what you’re designing when you design a customer table. Someone who arrives at a retail Web site and starts browsing the merchandise isn't really a customer but rather a prospective customer (a Web prospect in the main article's Figure 1). If you tried to record this individual, known only by his or her email address, in a conventional CUSTOMER table that has name and address columns set to NOT NULL, you’d have a sequence of error messages returned.
To accurately capture the reality as well as the data, use a design similar to that in Figure 1, which separates Web prospects from true customers. You’ll find that you’re gathering information about many more Web prospects than customers—which is normal in the retail business—but your customer table will have names and addresses for each of your real customers.