Hi
At the moment we are making an apllicattion for SAAS, my question is:
Is better create one database for all clients or create one database for each client.
Thanks for reply.
Hi
At the moment we are making an apllicattion for SAAS, my question is:
Is better create one database for all clients or create one database for each client.
Thanks for reply.
I create 1 database per client.
In case you have a corrupt database, then you can restore the database for 1 single client
Otherwise the database restore is done for all clients.
Juan
In the past there was a strong argument to using just a single Db, since importing an updated solution would only automatically manage the structural changes (the updated solution might make) to a single Db.
Other arguments (as Martin suggested) call for separate Db’s as an easier route to manage roll-backs and restores etc. A restore on one large Db would restore all Clients data not just the one that needed it.
Now, however, the latest versions of Servoy (apparently) have functionality to designate one Db as a ‘master’ which will automatically have the structure updated with an updated solution, and ‘sub’ Db’s which will have their structure updated to the master. I think the sub Db’s are ‘Cloned’ from the master, though I’ve not seen any documentation on how this is implemented yet so perhaps someone else will add more accurate instruction.
Using switchServer this now seems to offer the ‘best of all worlds’ IMHO.
HI Martin,
martinh:
In case you have a corrupt database, then you can restore the database for 1 single client
Otherwise the database restore is done for all clients.
Corrupt database ? Are you using FileMaker Pro for your datasource or something ?
When you use a fully ACID compliant RDBMS then shouldn’t be such a thing as a corrupt database. Now if you do get data corruption then this would be due to failing drives or other hardware (RAM/etc.) and then it doesn’t really matter if you have 1 or multiple databases now does it.
Now if you screw up your data (which I think is what you are referring to) by deleting or changing data by accident then it’s indeed more convenient to have separate databases.
ROCLASI:
Corrupt database ? Are you using FileMaker Pro for your datasource or something ?
FileMaker Pro (where stands the Pro for
)
ROCLASI:
Now if you screw up your data (which I think is what you are referring to) by deleting or changing data by accident then it’s indeed more convenient to have separate databases.
Any kind of corruption, including datacorruption. I had already once to restore a database, so for me it has already been proven: 1 database per customer
Think also about the following:
martinh:
Think also about the following:
- User want to use external reporting tools. With all customers in 1 database, a customer can see also the results of another customer
Can also be done with database views used for reporting, by filtering using the tenant key
martinh:
- Customer decides to continue working with Servoy Server internal and not in SaaS. When having 1 database per customer, this can easy been done. Just take and move the database to another location
Of course, you can pull their data separately from the database and reload into a clean database.
One more thing to think about, what about data that is common between all tenants (i.e. valuelists, menu driven navigation, etc.) If you have 1 database per tenant, then this data gets duplicated across multiple databases; unless, of course, you use two datasources for your project: one for common data, the other for customer data.
Just some thoughts to keep in mind. Either method has its pros and cons, it is just which is better for your specific deployment.