This is related to a stackoverflow question on DB design and my answer there.
To summarize relationships:
- Customer, vendor and distributor are types of organizations.
- One organization can have many contacts, a contact belongs to only one organization.
A few notes on tables:
- The Organization table has columns common to all organizations.
- The Customer, Vendor, and Distributor tables contain only specific columns for each one.
- The primary key in the Customer table also serves as a foreign key to Organization ID; same for Vendor and Distributor.