One of the things that has driven a few newer partners who are used to other CRM Systems bonkers has been how to do a Many to Many relationship type in CRM 3. So after consulting with the experts, it can be done and can be done quite easily. 

In a few vertical industries, this is a requirement. Two of them come to mind quickly. The first is Government Contractors and the second is Real Estate based companies.

What usually the need is to tie many accounts to multiple opportunities with multiple roles. So in one deal, a account may be a buyer, in a second deal, it may be the seller and on a third deal it may be a broker.

So this very simple little XML File create an Entity called Opportunity Accounts that contains links between the Account Entity and the Opportunity Entity.  To replicate:

1.    Create an Entity called Opportunity Accounts

a.    Uncheck the Notes and Activities Options

b.    Check the Make Available Offline

2.    Create a Many to 1 Relationship between the Opportunity and Opportunity Account Entities.

a.    The Type of Behavior should be referential.

3.    Create a second Many to 1 Relationship between Accounts and Opportunity Accounts.

a.    The Type of Behavior should be referential.

4.    I created an Attribute to track Account Type.

a.    Mine was a pick list to enforce some business rules.

5.    Open the form and put the Opportunity, Account and Account Type Fields on the form.

6.    I then edited the associated views to add the account, opportunity and types and remove the owner, created date and name.

7.    Publish your changes and away you go.

Download the XML file here to allow you to import into your demo system.