We have a solution that is hoping to implement what might have traditionally been called a multi-tenant or multi-customer solution. In this particular situation, they are referred to as partners. These partners have their own unique data for all of our master tables. In other words, if I had a people table where email was a unique field - it could be found multiple times associated to each partner. This would be true for any object in the hierarchy, regardless of how they all related to each other.
We originally were thinking of using a unique environment for each partner, but what they are hoping to achieve is ability to manage data across these partners within a single environment.
This feels like it needs to be a pervasive table that sits atop all other objects. It would be referenced as a Lookup from each table and should also be used as a combo key for records and the other alternate unique keys. Am I correct in this assumption? I've got database design skills, but this one is on a next level for me.
Is this essentially what business units are doing for us and should I immediately be thinking of how best to leverage business units in this way? I think of business units as strictly related to security. While its true that we may need also display only 1 partner-worth of data based on the role of the user, there are also situations where users will have a role that should allow them to traverse different partners and hopefully keep as much of that partner context as they are using the model-driven app.