【问题标题】:How to handle user access to an application that can access multiple databases如何处理用户对可以访问多个数据库的应用程序的访问
【发布时间】:2011-11-03 12:45:40
【问题描述】:

我正在考虑采用一种方法来获取现有的 php 和 mysql 应用程序,该应用程序是为内部使用而开发的(因此有一个单一的数据库,没有任何内置的多租户)。

我认为运行自己数据库的每个客户端是可能的,而且在某种程度上可能会更好。我想知道的是如何最好地处理用户的登录,因为提供的凭据可能在任何一个数据库中,在某些情况下可能是多个数据库。

我曾想过遍历每个数据库并检查有效凭据。如果凭据存在多个,则返回用户从中选择的列表,或者如果它仅存在一次,则只需登录。

这是一个有效的解决方案吗?如果应用程序要扩展为在数百个数据库中拥有数千名用户,它会开始表现不佳吗?

【问题讨论】:

    标签: php mysql login


    【解决方案1】:

    我建议为每个客户安装不同的应用实例,并使用他们自己的数据库。

    应该为每个客户端提供自己的 url 来访问应用程序,而不是让他们都从 1 个位置访问,而是指向多个数据库。

    这将解决您从 1 个位置(多个数据库)运行所有客户端时可能遇到的一些问题

    1. 如果不同的客户拥有相同名称的帐户会怎样?哪个帐户优先?
    2. 如果客户端想要接管应用程序并将其与其他客户端分开托管,会发生什么情况。您如何轻松地将这个客户端分离到一个单独的安装中?

    还有一点需要注意,连接和断开数据库的成本很高。如果您在用户登录时必须这样做 100 次以找出该用户所在的数据库。这可能会使系统或您的数据库服务器陷入困境。

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 2012-01-20
      • 2017-11-03
      • 2022-01-10
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      相关资源
      最近更新 更多