Я часть команды, которая в настоящее время разрабатывает специальный сервис SaaS для определенной группы организаций. У меня есть знания в PHP и mySQL, поэтому я разрабатываю их на этих платформах. Будет развернуто это на облаке и выпущено в нескольких странах.Многопользовательская настройка SaaS mySQL?
Ive подходит к разделению организаций/основных пользователей в базе данных и хотел бы посмотреть, что вы, ребята, думаете.
Когда SaaS управляет счетами-фактурами и многими другими конфиденциальными сведениями, что было бы лучшим способом его распространения на сервере mySQL? Ive подумал о следующих вариантах:
1) имея всю информацию в одной базе данных в отдельных таблицах и разделяемую организацией, определяющей строку. - кажется безопасным и может быть медленным, когда есть несколько тысяч пользователей и 10 000 строк?
2) с одной базой данных, но разделяющей таблицы с идентификатором пользователя, например. «1000_invoices» - снова может быть быстрее, но не так безопасно.
3) есть отдельные базы данных, созданные для каждой регистрации организации, и конкретный пользователь, используемый для доступа к базе данных, и имя базы данных хранится в сеансах/cookie? для пользователей организаций.
В любом случае мне было интересно, что вы, ребята, думаете, будет лучшим вариантом? и если не выше, то что вы рекомендуете? и почему? также что-нибудь о безопасности будет принята с благодарностью. Раньше не работали с крупными многоорганизационными приложениями. благодарим заранее!
спасибо за ваш ответ Дэвид, я думаю, что поеду с отдельной базой данных/организацией. Как вы рекомендуете отправлять данные базы данных (база данных, логин и т. Д.)? Когда login установлен как переменная сеанса? – Anthony1234
С PHP я сохраняю все временное состояние сеанса. Сведения о базе данных (например, строка подключения) являются свойством сайта, а не пользователем (так как это один сайт на базу данных для каждого клиента), поэтому просто вставьте его в статический файл Configuration.php на сайте. – Dai
Извините, я думал, что вы имеете в виду один сайт в целом и одну базу данных для организации. так как каждый пользователь регистрируется в нем, он устанавливает свою конкретную базу данных в сеансе, а затем сайт является их информацией, непосредственно из их конкретной базы данных. Не иметь отдельных файлов для каждой организации? Что будет лучше, если вы думаете? Разве это не будет проще? Может быть автоматизирован. – Anthony1234