1. A computer-implemented method for hosting, at a provider, a plurality of tenants over a network, the method comprising: analyzing, at the provider, attributes of a plurality of data structures; based on the analysis, determining which of the plurality of data structures is a tenant-specific data structure specific to a first tenant of the plurality of tenants, and determining which of the plurality of data structures is a shared data structure shared by the plurality of tenants; generating a tenant-specific designation to identify a data structure of the plurality of data structures as being specific to the first tenant, and generating a shared designation to identify a data structure of the plurality of data structures as being shared by the plurality of tenants; appending the tenant-specific designation to the tenant-specific data structure, and appending the shared designation to the shared data structure; storing, at the provider, the shared data structure; generating shared-metadata based on the shared data structure stored at the provider; storing, at the first tenant, the tenant-specific data structure specific to the first tenant for access by the first tenant; querying, based on the shared-metadata and in response to a data request from the first tenant, at least one of a provider server and a tenant server of the first tenant for the requested data; storing, at the first tenant, the shared-metadata defining an attribute of at least one of the shared data structure and the tenant-specific data structure; querying the provider or the first tenant dependent on whether the attribute indicates the requested data structure is a shared data structure or a tenant-specific data structure; and providing the requested data based on the querying.