What are the correct association set-ups between products campaigns and invoices?

What are the correct association set-ups between products campaigns and invoices?

Is there a guide that shows which associations affect which features in what way?

My confusion comes from the following:
  1. In ZohoCRM we have the ability to take a product and associate it to a contact.
  2. We can also take a product and associate it to a deal.
  3. We can take a campaign and associate it to a deal… and we can also take a campaign and associate it to a contact.
  4. Furthermore we can take a product and associate it to a campaign…
  5. and countless other possibilities

I couldn't find any tutorials to help with setting up this aspect of ZohoCRM.

I'm struggling because I don't know how each of these affect the function of other features and don't know how to choose to set things up to make things work properly.

For example, reports/campaign stats work based on associations, but how exactly?

I can’t find documentation about what they are based on so I can decide where to do what associations…

For example when I create a campaign record… it is supposed to tell me how much money was earned from that campaign. 
  1. But how does it figure this out? Which associations do I need to make?
  2. Associate just the deals that came about from that campaign? Then the earnings report is based on the closed amounts of those deals associated with the campaign?
  3. What about invoices? What if I associate an invoice with a deal. Is the campaign revenue based on the closing amount or the invoice?
  4. Furthermore what if I associate the invoice with the contact? Will it double count the earnings produced by the campaign?
- On the same note, where should I associate the invoice? To the contact or the deal? And why?

- What about products? Should we associate them with the contact, the deal, or the campaign, or all of them?

Is there a table/guide/document somewhere that tells us what info is pulled from what association so we know how to set up our associations?