You need a third table so that you can match multiple businesses to multiple contracts. You can then use portals to this "join table" to assign companies to a given contract record. Define a number field in this third table to record your dollar amounts.
If you called your third table, Company_Contract, your relationships would look like:
Companies::BusinessID = Company_Contract::BusinessID (Allow creation and deletion for Company_Contract)
Contracts::ContractID = Company_Contract::ContractID (Allow creation and deletion for Company_Contract)
Place a portal to Company_Contract on your Contracts layout, add the BusinessID field, the Company_Contract::Amount field, plus the fields from Companies (such as company name) that you need.
To assign a company to a contract, pull up its record, select the BusinessID number for the company and enter the dollar amount into the amount field.
On any given contract I have multiple business that perform work
Is the opposite also true - i.e. can the same business perform work under more than one contract?
Yes, can you help me make a little more sense of this or send a screne shot of the relations showing what phil was talking about to my email firstname.lastname@example.org