Yii - 具有一个用户身份验证的多个数据库

时间:2015-05-26 14:15:28

标签: yii

我在尝试在Yii中开发应用程序时遇到了问题(v = 1.1)。客户希望应用程序具有多个数据库(每个客户一个)。这意味着我们将拥有数量不详的数据库。此外,他希望只有一个用户身份验证系统 - 考虑到它,用户可以选择(和权限)属于许多数据库。所以我正在考虑它的开发方式。

你是否遇到过这样的事情?

1 个答案:

答案 0 :(得分:1)

那么你应该首先更好地定义你的目标,因为我不清楚你想要完成什么,但我怎么看。

确定您要存储用户的位置:

  • 同一个用户是否可以使用相同的登录信息连接到两个不同的客户数据库?
  • 您是否需要从一个地方管理所有客户的所有用户?

您可能遇到以下情况:

仅将用户存储在一个公共数据库中,而不是存储在客户数据库中:

  • 登录时告诉Yii使用用户模型的“通用”数据库
  • 您还可以使用一个处理用户管理的常用应用程序
  • 您还可以为客户提供管理自己用户的可能性
  • 你可以在Users表中有一个“customer”字段来指示它所属的客户,或者你可以有一个“users_customers”表,并在登录界面后提示用户有一个“选择客户”屏幕,所以一个唯一的用户可以登录多个客户

仅将用户存储在客户数据库中:

  • 如果您不需要一个共同的位置来管理用户,或者不需要在客户之间共享它们,只需在每个Customer数据库中都有一个User表,这样用户“alex”就可以存在于两个数据库中不同的登录信息
  • 在这里你可以简单地在登录表单中添加另一个字段(是的,我看过一个应用程序执行它),例如,而不是用户名和密码字段,要求“Office,用户名和密码”,Office将是Customer数据库的名称。或者您甚至可以仅使用用户名字段并强制用户输入诸如“alex @ office”之类的内容作为用户名,然后将其拆分为“@”并且您知道它属于哪个办公室。
  • 然后在登录屏幕和会话中简单地使用该信息告诉Yii要连接到哪个客户数据库

因此,您可以看到它可以通过不同的方式完成。一旦选择了自己的方式,就需要实施。

如果您不知道如何执行,我可能会提供与Yii相关的更多技术信息。