I am contemplating how to create a custom object to hold account information and then associate the related contacts to this custom account object. Can contact records be re-parented or related to custom records? Should I also create a custom object to mock contact and build the relationship that way?
Background
I have a scenario where a subset of Account records needs to be private. The objective is to maintain records of the accounts, contacts, and correspondence without the rest of the organization seeing sensitive information.
I originally thought that changing the OWD on Account to private and then creating some sharing rules would make this easy. Then existing reports on Accounts with related Activities wouldn't work. I came across articles stating that this is a known issue and the security model of the Parent (Account) controls the child (Activity): Cannot view Activity history AND Activity HIstory Visibility. Thus the foray into creating clones of Account and Contact. If I go down this route of creating mock Account and Contact custom objects, are there any pitfalls that the community would foresee? I am not feeling optimistic that this will work. For example this point From Notes on Enabling Activities for Custom Objects seems like a potential deal-breaker:
The ability to send emails or create mail merge documents is available for activities on custom objects. The email must be sent to a contact or lead.
Maybe the custom account object can be a parent to Contact records and the OWD on custom object is private. Just need to figure out if Contact records can be re-parented to custom account object. Or, maintain existing Account records and Account - Contact relationship, but create custom account object and maintain private activities/correspondence through this custom object?