Thanks George I will read the article.
>I'm not quite following what you're trying to do with products and participants, and how they relate to trades?
Thanks for the feedback Bob, I relate Product to Participant because 1 Product has certain participantTypes.
In a "Add new trade" form, I want to have something like this:
Select Product from listbox e.g. Bank Bill, then show its participantTypes i.e. lender and borrower
then select client for lender, and client for borrower.
Then I want to save both clients and their participantTypes in the tradeDetail table.
I think I'm confusing you even more

)
>Also, do you have multiple transactions in a trade? And can they be with different participants?
Yes, that's why I have tradeDetail table.
1 Trade always involves 2 clients, who will be buyer/seller, or lender/borrower or payer/receiver.
But things like product, rate, date of a trade is the same for both clients.