繁体   English   中英

如何处理基于用户的数据库选择?

[英]How to handle selecting a database based on the user?

我正在建立一个网站,它将有来自多家公司的多个用户。 每个公司都将获得具有相同表的相同数据库的副本。 唯一的区别是数据库名称。 我希望每个用户只能访问分配给他们公司的数据库。

我需要提出一种基于用户登录名选择数据库的方法。 使用用户表中的会话变量作为数据库名称是否可以接受?...

$dbCon = new mysqli('localhost', 'root', '', $_SESSION['databaseName']);

也许是饼干? 还是我看错了整个事情。 任何输入都会很棒。 我还在学习。 谢谢

我的建议是选择一个数据库作为您的“登录”数据库,该数据库具有表中的所有用户帐户。 然后,在要验证其登录名的用户表中添加一列。 您可以在该列中存储公司或“分配的数据库名称”。 身份验证后,您可以关闭数据库连接,并使用正确的已分配数据库打开新连接。

您可以为用户登录使用以下架构

LoginTable :( (username,password,...,company_id)

公司(company_id,....,dbname)

因此,一旦用户登录,他就可以从公司表中选择与公司ID相对应的数据库。 该查询可以由自然加入公司和LoginTable用一个命令编写。因此,检索dbname之后,可以将其存储在会话变量中以备将来使用。

希望你能理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM