Как обработать доступ пользователей к приложению, которое может получить доступ к нескольким базам данных - PullRequest
0 голосов
/ 03 ноября 2011

Я рассматриваю способ использования существующего приложения php и mysql, который был разработан для внутреннего использования (и, следовательно, имеет единую базу данных, в которой ничего не заложено с точки зрения многопользовательской аренды).

Я подумал, что возможно и, возможно, в некотором роде лучше запустить каждого клиента в своей собственной базе данных. Я хочу знать, как лучше всего обрабатывать имя пользователя, учитывая, что предоставленные учетные данные могут быть в любой из баз данных, а в некоторых случаях, возможно, в нескольких базах данных.

Я думал о том, как перебирать каждую базу данных и проверять действительные учетные данные. Если учетные данные существуют в виде кратных значений, возвращают список, из которого пользователь выбирает, или, если он существует только один раз, просто войдите в систему.

Это правильное решение? Будет ли он работать плохо, если приложение расширится до тысяч пользователей в сотнях баз данных?

1 Ответ

0 голосов
/ 03 ноября 2011

Я рекомендую установить разные экземпляры приложения для каждого клиента с собственной базой данных.

Каждому клиенту должен быть присвоен собственный URL-адрес для доступа к приложению, вместо того чтобы иметь доступ ко всем из одного местоположения, но указывать на несколько баз данных.

Это устранит несколько проблем, с которыми вы можете столкнуться, если вы запустите все свои клиенты из одного местоположения (несколько баз данных)

  1. Что произойдет, если у другого клиента будут учетные записи с одинаковыми именами? Какой аккаунт будет иметь приоритет?
  2. Что произойдет, если клиент захочет принять приложение и разместить его отдельно от остальных клиентов. Как вы можете легко выделить этот клиент в отдельную установку?

Еще один момент, который стоит отметить: подключение и отключение к базам данных обходятся дорого. Если вам необходимо сделать это 100 раз, когда пользователь входит в систему, чтобы выяснить, в какой базе данных находится этот пользователь. Это может привести к сбою системы или вашего сервера базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...