link any transaction to "the other party"
There are legal requirements to trace back who is the recepient or sender of any payment (not just invoices) with all the identification details (address, IDs...).
To rely on the "Description" filed is not sufficient (can't enter all the identification detail and isn't good for searchig).
I woud need to search for all transactions with a party disregarding it's an invoice, cash receipt or an other form of transaction (lets say off-setting payables).
So, I would suggest not to distinguish "vendors", "customers" and "employees" - and rather use table "parties" for all of them.
Then you could relate invoices (both, sales and purchase) to the Parties. And you could relate the transactions in a similar manner to the Parties.
Searching would be much, much, much more easy!