We are having a web application developed j2ee/Spring.
We are planning to implement SaaS model by using different schema for each customer.
Please suggest the best way to do it.
We are blank how to start the process ? How can we map different customer to different DB ?
Thanks
This is something you want to control with your ORM. Check out EclipseLink:
http://wiki.eclipse.org/EclipseLink/Development/Indigo/Multi-Tenancy
Alternatively, check out Hibernate's Multi-Tenancy: http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch16.html
I would go with tenant per schema.
For using different schema for each customer you need to come up with an identifier(s) that can be used to uniquely identify the customer schema or the tenant schema. It is usually a tenant identifier key.
Neil's answer has provided useful links on actually making connections to different tenant databases.
Below is a link to one of my posts that talks about the db architecture and related items.
Architecture for SaaS based online portal