是否有任何PHP框架(例如CodeIgniter)支持基于每个用户帐户的数据库连接,以便在多租户数据库中使用?

时间:2010-04-22 22:11:59

标签: php database codeigniter multi-tenant

我正在研究开发多租户SaaS应用程序,我发现有几个网站描述了使用tenantID和可更新视图分离数据的可靠方法。例如This blog post

这一切都取决于是否能够从主用户表中对您的用户帐户进行身份验证,然后让各自的数据库连接使用这些特定于用户的凭据。这样,视图可以拉取用户标识并将其映射到tenantID以显示该用户的视图。但是,大多数PHP框架在数据库连接(存储在文本配置文件中)时往往是非常静态的。他们似乎不一致。

有谁知道: a)如何让CodeIgniter优雅地处理这个问题? b)可能的不同PHP框架?

3 个答案:

答案 0 :(得分:4)

在极端基本的水平上你可以这样做:

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

根据需要展开它,或将逻辑移动到MY_Controller以获得更大的灵活性。

答案 1 :(得分:1)

有一个话题在Code Igniter论坛上讨论这个问题。

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

看起来您在配置文件中将用户数据库设置为主数据库,然后根据该用户数据库中的信息为用户生成新连接的配置数组。所以,我想你至少需要在用户数据库中存储数据库名称。

不知道这有多好用,因为我还没有机会试一试。

很抱歉,如果这不是您想要的,但它应该让您了解Code Igniter方法。

答案 2 :(得分:0)