【问题标题】:Are there any PHP Frameworks (e.g. CodeIgniter) that support database connections on a per user account basis for use in a Multi-tenant database?是否有任何 PHP 框架(例如 CodeIgniter)支持基于每个用户帐户的数据库连接,以便在多租户数据库中使用?
【发布时间】:2011-02-11 07:13:08
【问题描述】:

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

这一切都取决于让您的用户帐户从主用户表进行身份验证的能力,然后让他们各自的数据库连接使用这些用户特定的凭据。这样,视图可以提取用户 ID 并将其映射到租户 ID 以显示该用户的视图。然而,当涉及到数据库连接(存储在文本配置文件中)时,大多数 PHP 框架往往是非常静态的。他们似乎有矛盾。

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

【问题讨论】:

    标签: php database codeigniter multi-tenant


    【解决方案1】:

    在非常基础的水平上,您可以这样做:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      不知道这效果如何,因为我还没有机会尝试。

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

      【讨论】:

        【解决方案3】:

        【讨论】:

        • framework.zend.com/manual/en/zend.db.adapter.html 所以我正在研究这个组件,我想知道如何使用每个用户的凭据实现数据库连接,以完成上面的博文链接。如果对那些知道的人来说很明显,请原谅我,但我正在努力解决这方面的问题。
        • 那篇文章没有提到多租户数据库
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        • 1970-01-01
        相关资源
        最近更新 更多