Forum OpenACS Development: Re: User account Merge (UM)
Looks pretty good! A couple of comments...
I'm pretty convinced that this won't be 100% automated. Consider the case of merging relations. In your document, step 3 is
> 3. Get the relations that GA hasn't and the BA has and merge them
I guess I'll have to come up with a specific example but I suspect there will be cases when the person should only have one relationship and not many. Blindly taking the sum of all relationships seems like its bound to fail.
Perhaps there are other, package-specific situations that will arise in the different packages. For this reason, I'd prefer an application-level solution rather than the foreign key approach.
As for service contracts, I'd recommend having "user" in the name of the contract, so it's clear what is being merged. So I'd use MergeUser or MergePackageUser instead of just MergePackage.
But...we're starting to explore the use of a new, simpler callback mechanism, which might be a good alternative to service contracts. Please take a look at TIP 79.