In general, a person can be a user, client, and administrator, so I would start with the person table with the columns IsCustomer , IsUser , IsAdmin . Later (for a quick search) you can add separate Admin , Customers , Users tables with FK to the person table.
EDIT:
A typical case might be:
- 5 million users
- 1000 customers
- 10 admins
In general, having separate tables for clients and administrators should speed up any query related to the administrator / client.
Damir sudarevic
source share