5 мин чтения

Мультитенантность: как изолировать данные разных клиентов

Три подхода к разделению данных в SaaS и как выбрать подходящий для вашего продукта.

Мультитенантность — это когда один экземпляр приложения обслуживает множество клиентов (tenant). Ключевой вопрос: как хранить данные так, чтобы клиент A не видел данные клиента B. Есть три подхода: отдельная база для каждого клиента, отдельная схема в общей базе, общие таблицы с полем tenant_id.

Отдельная база — максимальная изоляция, но дорогая в обслуживании при большом числе клиентов. Общие таблицы — дешевле, но требуют дисциплины на уровне кода: каждый запрос должен фильтровать по tenant_id. Пропуск этого фильтра — критическая уязвимость. Для стартового SaaS MVP обычно подходит третий подход с тщательным code review.

Архитектурный выбор принимается до написания первой строки кода — переход между подходами после запуска очень дорог. Поэтому при проектировании SaaS важно зафиксировать ожидаемое число клиентов, требования к изоляции и бюджет на инфраструктуру.

Готовы обсудить проект?

Получить расчёт ← Вернуться к тарифу