frost18
@frost18
Программист PHP

Как построить правильно архитектуру веб приложения под мою задачу?

Передо мной стоит не типичная задача по разработке некого saas решения по обработки заявок с сайтов, лидов, клиентов, задач и того подобное. Можно сказать это не большая CRM система, большими братьями можно назвать bitrix24, megaplan. В работе будут использоваться стандартные инструменты LAMP.
Возвращаясь к сути вопроса, мне нужно чтобы база данных под каждую компанию была своя, тем самым изолирована от остальных, в случаи если она накрывается или крадется это не имело последствий для остальных компаний. Программный код, дизайн и верстка будет соответственно общим.
Вопрос в том как мне подойти к созданию/изменению/разработке большое количество баз данных, где копать что читать?
  • Вопрос задан
  • 2410 просмотров
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ошибка в общем программном коде и разные базы (или одна) - уже не важно.
Унесут все.

Простая защита - alias-ы:
ID-компании, логин1 и пароль1 (для кода/скриптов) => API (query-proxy) => DB-компании, host, логин2 и пароль2 (для базы)
На уровне API делаете централизованную проверку на "кривость" запросов и запускаете под другим пользователем, который кроме исполнения этого файла больше ничего не может.
Итого имеем: [web-server] => [query-proxy] => [db's]
Чтобы получить доступ к базе, нужно вначале получить доступ к просмотру информации в [query-proxy]. А это уже не так просто, особенно, если он в виде скомпилированного модуля.
Ответ написан
DaFive
@DaFive
Если вы изначально думаете, что базу могут украсть или она сломается - то в чем разница? Что у вас будет 100 баз, что одна. Любую украдут или любая сломается.
Поддерживать большое количество БД - не очень просто. Если это небольшая CRM-система - то зачем вам такие сложности?
Если логика вывода, верстки, кода одна - то проблем подсоединиться к определенной БД для серверных языков программирования не составит проблем.
Ответ написан
levelost
@levelost
При разработке сервиса nonzenon мы тоже столкнулись с такой проблемой. Несмотря на ежедневные резервные копии, мы делаем не только отдельную БД для каждой организации, но и отдельный сервер. Это тяжеловато, конечно, зато риск потерять всё и сразу сильно снижается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы