My preference is to have a single contacts database with a tick box to indicate if the business interacts with that entity in one or more of the following manners (appears in one or more of these lists):
- Customer
- Supplier
- Expense claim payer
- Employee
The advantage is, it then allows reports to be generate summarizing all the interactions of that contact with the business. Balancing credits and debits across the various roles also becomes directly supportable when a receipt or payment is made.
This has been supported by a broad range of user as summarized here