Should I keep separate client codebases and databases for a software-as-a-service application?
Posted
by
John
on Programmers
See other posts from Programmers
or by John
Published on 2011-11-14T09:01:48Z
Indexed on
2011/11/16
18:13 UTC
Read the original article
Hit count: 196
architecture
|ruby-on-rails
My question is about the architecture of my application. I have a Rails application where companies can administrate all things related to their clients. Companies would buy a subscription and their users can access the application online. Hopefully I will get multiple companies subscribing to my application/service. What should I do with my code and database?
- Seperate app code base and database per company
- One app code base but seperate database per company
- One app code base and one database
The decision involves security (e.g. a user from company X should not see any data from company Y) performance (let's suppose it becomes successful, it should have a good performance) and scalability (again, if successful, it should have a good performance but also easy for me to handle all the companies, code changes, etc).
For the sake of maintainability, I tend to opt for the one code base, but for the database I really don't know. What do you think is the best option?
© Programmers or respective owner