There are ways I can do this, but I am looking for the best practice. I operate a business and we and Accounts which made made up of two different kinds of customers, - Commercial and Residential. The Accounts are also consist of people, who are primary contacts, other contacts, employees, or people we bill the account to (residential and commercial). Like employees, Residential locations will also have people that live there, not just one person per residential account. BUT employees of a commercial location will have a job title.
I want to be able to eventually identify the account in forms and in reports by either the business name if the account is a "Commercial" type, or the last name of the primary contact for the Residential type.
Any suggestions? I am trying to avoid as many blank spaces as possible, and many empty/null fields in the database. I am running into issues such as not needing the addresses of people that work at a business because the business itself has a address (or I repeat the info too much), and naming the account itself (uses a last name of a person if residential and the name of the business if commercial). Naming the account could be done pro grammatically I suppose, but perhaps there is a better way to set it up.
Business:
Name
Address
Person (employee) (primary contact)
Persons (employees) (other contacts or regular)
Residential
Address
Person (primary)
Persons
Person (billing and address)