Charles Sexton wrote:...Personally I feel like customer is a subclass to person. I may add an employee and manager class later which would also be a subclass of person....
Sounds right, but I agree with Junilu: how detailed or sophisticated you want your hierarchy is likely to depend much more on what you need to
do with "people" (or "customers" or "employees") than whether they're perfectly structured.
One thing that might be worth mentioning: People, in general, are
notoriously difficult to identify, because all the things we
normally use (name, date of birth, gender, blood type, etc..) don't guarantee uniqueness,
even in combination; and many of the other things that we might use - like address or telephone number - can change. Furthermore, there are laws about what companies are, and are not, allowed to ask.
I have a friend from Morocco, for example, who doesn't even have a full date of birth on his
passport - just a year.
Employees, on the other hand, are likely to have a number, so...how do you match employee "John Smith" with the
person "John Smith", and know that he's not one of the 46 other "John Smith's" that you also have as
customers? It's also perfectly possible that employee "John Smith" is
also a customer.
The simple answer is that there's no "right way" to do it - although it's good that you're thinking about it. I'd go with Junilu's advice: let the
business - and your testing - determine what the best approach is.
HIH
Winston