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

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

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

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


person Brad G    schedule 22.04.2010    source источник


Ответы (3)


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

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

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

person Phil Sturgeon    schedule 12.03.2011

Об этом есть тема на форумах Code Igniter.

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

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

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

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

person Eric Allen    schedule 12.03.2011

Zend Framework. http://framework.zend.com/manual/en/learning.multiuser.intro.html

person shurik2533    schedule 23.04.2010
comment
framework.zend.com/manual/en/zend.db.adapter. html Итак, я смотрю на этот компонент, и мне интересно, как реализовать соединение с базой данных с учетными данными для каждого пользователя, чтобы выполнить стратегию, изложенную в приведенной выше ссылке на сообщение в блоге. Простите меня, если это очевидно для тех, кто знает, но я борюсь с этим аспектом. - person Brad G; 23.04.2010
comment
в этой статье не упоминаются мультитенантные базы данных - person Neil McGuigan; 25.02.2011