1. A computer-implemented method for managing a provider-tenant system where a provider communicates with a plurality of tenants over a network, the method comprising: receiving at a provider a plurality of data structures corresponding to a first tenant; analyzing, using a processor, attributes of the plurality of data structures; based on the analysis, determining which of the plurality of data structures are specific to the first tenant and which of the plurality of data structures are shared by the plurality of tenants; appending designations to the plurality of data structures, based on the determination; generating a tenant template that stores at least one of the plurality of data structures having an appended designation, the at least one data structure being specific to the first tenant; using the tenant template to generate a tenant database corresponding to the first tenant; storing the at least one appended data structure specific to the first tenant in the tenant database; and storing a data structure that is specific to the first tenant at a second location in the provider.