This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Hi all ,
we have developed an application called document management system which has been developed using spring and hibernate , now we want give this application on trial basis to the clients. to do so what we have done is we have created separate database for each client , User while logging in will be giving his user name and password along with client id based on client id i have to refer the database .
(for example i have created two databases with the names AAA and BBB and restored these databases with our application database, while user logging if he gives client id as AAA then the database named AAA has to be refer ed for all his transactions ,if the client id is BBB then database BBB has to be referred , these databases schema and all the stored procedures will be same but data will be based on clients )
how to dynamically decide which database has to be referred in hibernate.
If its a web app and my company got more money, then I might deployed separate instance of webapp for each client and configured the db accordingly, then it just a matter of sub-dimain pointing correct app, like http://aaa.dms.com or http://bbb.dms.com
You don't want to have a separate webapp for each client because if your application is mostly database oriented, the load on your webapp server is going to be much lesser than the load on the database server. The cost of the webapp server, and more importantly the labor cost of maintaining the server will be a big waste
This kind of model where you want to support multiple clients in your SaaS app is called multi tenancy. There are various multi tenancy models. This whitepaper does a good job of covering the various multi tenancy models