When we develop software which is applicable to multiple customers we need to consider Multitenant architecture. In Multi-tenancy, each customer is called a tenant.
Shared Database, Shared Schema
In this case, multiple tenants are using the same database and schema. Each table will have records from multiple tenants. A unique ID like Tenant ID relates every record with the particular tenant.
Sharing database with Separate Schemas
In this case, multiple tenants are in the same database, with each tenant having its own schema created specifically. Here database server, Database and Instance are shared.
Separate database for each tenant
In this case, only the database server resource can be shared. Each tenant has its own database. Banking Customers are mostly looking for the products with this option.
- It simplifies release management process and does not require having separate release for each customer until changes required in customized interfaces.
- IT has ability to scale up easily. The scaling productivity depends upon the available resources.
- Addition of new customer is economical.
- Cost saving in terms of:
- License Cost of software like OS, DBMS, etc.
- Sharing of hardware resources