Our software presently operates on MySQL. The information of tenants is saved within the same schema. Since we're using Ruby on Rails we are able to easily pick which data goes that tenant. However you will find some companies obviously who fear their data may be jeopardized, therefore we are evaluating other solutions.

To date I've come across three options:

  • Multi-Database (each tenant will get its very own - as being similar to 1 server per customer)
  • Multi-Schema (unavailable in MySQL, each tenant will get its very own schema inside a shared database)
  • Shared Schema (our current approach, maybe with a lot more determining record on each column)

Multi-Schema is the best (thinking about costs). However developing a new account and doing migrations appears to become quite painful, because I would need to iterate total schemas and alter their tables/posts/definitions.

Q: Multi-Schema appears to become made to have slightly different tables for every tenant - I'm not going this. Can there be any RDBMS which enables me to utilize a multi-schema multi-tenant solution, in which the table structure is shared between all tenants?

P.S. By multi I am talking about something similar to ultra-multi (10.000+ tenants).