В настоящее время наше программное обеспечение работает на MySQL. Данные всех арендаторов хранятся в одной и той же схеме. Поскольку мы используем Ruby on Rails, мы можем легко определить, какие данные принадлежат арендатору. Однако есть некоторые компании, которые, конечно, опасаются, что их данные могут быть скомпрометированы, поэтому мы оцениваем другие решения.
До сих пор я видел три варианта:
- Multi-Database (каждый арендатор получает свой собственный - почти такой же, как один сервер на клиента)
- Multi-Schema (недоступно в MySQL, каждый арендатор получает свою собственную схему в общей базе данных)
- Общая схема (наш текущий подход, возможно, с дополнительной идентификационной записью для каждого столбца)
Multi-Schema - мой любимый (учитывая затраты). Однако создание новой учетной записи и выполнение миграции кажется довольно болезненным, потому что мне придется перебирать все схемы и изменять их таблицы/столбцы/определения.
Q: Multi-Schema, похоже, спроектирован так, чтобы иметь несколько разных таблиц для каждого арендатора - я не хочу этого. Есть ли какая-нибудь СУБД, которая позволяет мне использовать многоэлементное многопользовательское решение, где структура таблицы распределяется между всеми арендаторами?
P.S. Под несколькими я имею в виду что-то вроде ultra-multi (10.000+ арендаторов).