Существуют ли какие-либо фреймворки PHP (например, CodeIgniter), которые поддерживают соединения с базой данных для каждой учетной записи пользователя для использования в многопользовательской базе данных? - PullRequest
6 голосов
/ 23 апреля 2010

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

Все это зависит от возможности аутентификации ваших учетных записей пользователей из основной таблицы пользователей, а затем их соответствующих подключений к базе данных с использованием этих пользовательских учетных данных. Таким образом, представления могут получить идентификатор пользователя и сопоставить его с tenantID для отображения представления этого пользователя. Однако большинство PHP-фреймворков, как правило, очень статичны, когда дело доходит до соединений с базой данных (хранятся в текстовых конфигурационных файлах). Похоже, они расходятся.

Кто-нибудь знает: а) как заставить CodeIgniter справиться с этим изящно? б) другой PHP-фреймворк, который может?

Ответы [ 3 ]

4 голосов
/ 12 марта 2011

На ужасающем базовом уровне вы можете сделать это:

http://philsturgeon.co.uk/blog/2009/06/How-to-Multi-site-CodeIgniter-Set-up

Разверните его по мере необходимости или переместите логику в MY_Controller для большей гибкости.

1 голос
/ 12 марта 2011

На форумах Code Igniter есть тема, в которой об этом говорится.

http://codeigniter.com/forums/viewthread/165227/#846845

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

Не уверен, насколько хорошо это работает, потому что у меня еще не было возможности попробовать это.

Извините, если это не совсем то, что вы искали, но это должно дать вам представление о подходе Code Igniter.

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