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.