>From: metastable [mailto:listpit@stripped]
>Sent: Friday, November 14, 2008 8:49 AM
>Subject: normalised designs: customer database
[JS] My first suggestion, and I am entirely sincere, is that you use either
an off the shelf solution or an external service. I inherited a home-grown
system and it is a perpetual pain in the neck. It never has done what we
really need to do, although it's been getting closer.
In a former life I was a consultant, and I always discouraged customers from
building when buying would suffice. Of course, every company in the world
has unique needs - or so they claim. :-(.
2) create the customer table with a column specifying if we're dealing
>with a human being or a company
[JS] I recommend this.
>3) create the customer table with a FK for people and a FK for
>companies, and decide on the customer type in the application based on
>the presence of that key
[JS] I'm not sure why you need a foreign key. Surely you won't be entering
customers using the MySQL CLI client on a routine basis, so your user
interface could (and should) be responsible for checking the data.
If you really feel the need to constrain the data, define the column as a