Уважаемые коллеги, есть вопрос касательно архитектуры БД под SaaS.
Основная проблема заключается в том, что и доступных специалистов SaaS, с одной стороны, никто не строил, с другой стороны все Специалисты, и все стоят на своем. Я боюсь того, что скоро дойдет до смертоубийства. =)
Хочется альтернативного мнения.
Итак, дано:
Система, позволяющая компании получить аккаунт, завести учетки для своих сотрудников и счастливо в ней работать. Каждый аккаунт (приложение) для компании независимы от других аналогичных аккаунтов. При этом это единый кодебейз, и структура бд у каждого аккаунта идентична. По большому счету вопрос — как сделать SaaS из коробки.
Предлагаемые варианты:
DB per account (MySQL) — для каждого аккаунта отдельная бд.
One DB for all (select by account_id) — все храница в единой бд, выборки по айдишнику аккаунта
Использование схем postgresql
Буду рад любому аргументированному мнению.
Если нужны доп. тех. подробности — отвечу в комментах.
Дык. Отмасштабируемся на другой сервер. Да и клиентов у нас не то чтобы много, у нас мало клиентов, у которых много пользователей. Вообщем как то так. Это последнее в большом списке того, что меня пугает.
Если клиентов мало, то проще будет работать с одной БД, так как Вы снижаете затраты на конфигурацию, настройку и сопровождение разных БД. + может возникнуть необходимость интеграции данных между клиентами.
Мы используем 2 вариант. Mysql. Более 100К юзеров , база летает, но много парились с оптимизацией. С точке зрения безопасности наверно 1 вариант предпочтительней.