Currently, all schemas and the data they contain are global for the whole instance.
I believe the solution only makes sense if we can at least be able to scope it by portal. A PortalId field here would do it for the data but not for the schema. One site may want a Contact table that has 3 fields and no relations but the other site also want's a Contact table but with 10 fields and 3 relations. Those schemas would be incompatible.
For other uses cases, the instance owner may want to have a schema/data that is global for all portals and would hate this feature.
One solution to implement this without breaking the global option would be to add an optional _portalId to the table names.
So Contacts would be global for the instance, but Contacts_1 and Contacts_2 would be scoped per portal.
This leaves us with just the naming conflict between the global and portal specific ones... I am not sure what is the best way to solve this one but I think that since it's all WebAPI driven, the APIS could have a portalId in their request, if not provided they would serve the global one but if provided would serve the portal specific one.
Currently, all schemas and the data they contain are global for the whole instance.
I believe the solution only makes sense if we can at least be able to scope it by portal. A PortalId field here would do it for the data but not for the schema. One site may want a Contact table that has 3 fields and no relations but the other site also want's a Contact table but with 10 fields and 3 relations. Those schemas would be incompatible.
For other uses cases, the instance owner may want to have a schema/data that is global for all portals and would hate this feature.
One solution to implement this without breaking the global option would be to add an optional _portalId to the table names.
So
Contactswould be global for the instance, butContacts_1andContacts_2would be scoped per portal.This leaves us with just the naming conflict between the global and portal specific ones... I am not sure what is the best way to solve this one but I think that since it's all WebAPI driven, the APIS could have a portalId in their request, if not provided they would serve the global one but if provided would serve the portal specific one.