We're currently struggling with how to relate accounts and contacts in our implementation. The idea of a person having a single organization to which they belong (via the OOTB lookup) doesn't really fit our scenario. With our clients, there's generally a lot of people who work/volunteer for multiple orgs at once, plus they move between them with regularity. Also, our clients can be individuals as well as orgs.
The issues with doing this via the lookup are:
1. Only one account per contact (unless you add a second lookup, then maybe a third, etc... and all of the requisite fields).
2. No good history tracking (when did they start/leave).
3. If they move, either their activities go with them to the new account, or you have to create a second contact record (which is not an option for us, as having a complete picture of our relationship with these individuals as they move around is very important).
So using Connections solves these issues, but then has the following cons:
1. Less intuitive reporting
2. Activities do not roll up at all
3. Rollup fields will not work
The only solution I can see that maintains the level of data integrity we need to have seems to be to use Connections, but then to write custom code of some kind to roll up activities, numbers, etc... specifically for the dates during which that contact was connected to that account. Are there any other options I'm missing? Is anyone aware of any code out there that does anything like this?
This still doesn't fix the "less intuitive reporting" issue, but I don't see a perfect solution and data integrity is more important than intuitiveness of report building - we can always build it (or at least a base) for them if the data is good.