Our module supports up to 4 different ways of handling and distributing tenant data. Preference depends on resource availability and your growth expectations.
1. Shared Database i.e Single database for all tenants
Use the current active database for all tenants. This scheme is very suitable for shared hosting and or Cpanel.
Each tenant on the shared database has its own separate tables ensuring a higher level of data isolation. Although they are using a shared database, but the data are not mixed making it more secure especially when running on a shared host environment.
2. Single Database Single Tenant
This requires that your Perfex CRM database user has the privilege to create a new database on the fly. In this scheme, a database is created for each instance and will mostly work on VPS.
3. Single Database Single Tenant from the provided pool.
Use a single database for each company instance from the pool only. Customers won’t be able to subscribe to this package when the provided databases are exhausted.
It takes from the pool and assigns a database to a tenant. This is very useful when running on a shared host like Cpanel and still wanting to use a single database for each tenant on some special packages. You can add unlimited numbers of databases
Ensure the database you are trying to connect allows remote connection when connecting to remote databases (i.e database on another host)
4. Distribute companies’ data among the provided databases in the pool – Sharding
Companies’ data will be distributed randomly among the provided database. This shares the tenants’ data across the provided database.
This option is also scalable and suitable for any type of hosting.
Ensure the database you are trying to connect allows remote connection when connecting to remote databases (i.e database on another host)
It’s essential you have a very solid backup system for your databases to ensure high availability and rollback in case of an accident. We advise using cloud databases as much as possible to ensure higher availability.