Здравствуйте!
Задался вопросом правильной архитектуры веб-сервиса. Интересует, как организовать хранение данных в приложении подобном CRM-системе с перспективой на масштабируемость.
Т.е. там есть много пользователей, у каждого свой набор клиентов и т.д.
Из того, что я нашел:
- Одна таблица с клиентами всех пользователей, в этой таблице Ключ со значением Пользователя
- Отдельная таблица с клиентами для каждого пользователя, имя User1_clients
- Отдельная база данных для каждого пользователя
- На Хабре читал про вариант с виртуализацией, когда для каждого пользователя создается виртуальная машина со своей версией веб-приложения и БД
Вопрос: есть ли другие варианты? какой предпочтительнее с точки зрения масштабируемости? какой предпочтительнее с точки зрения скорости разработки?
Есть ли примеры реальных веб-приложений, которые рассказали как у них устроено хранение данных?
К сожалению, англоязычных ответов на подобный вопрос не нашел. Если есть ссылки, буду рад.