在php中为多租户应用程序实现共享数据库

时间:2018-01-04 09:14:13

标签: php mysql codeigniter saas

我使用"共享数据库,共享架构为多租户应用程序设计了我的MySQL数据库。租户标识符(租户密钥)将每一行与正确的租户相关联。"结构如this帖子所示。

我使用Codeigniter作为我的PHP框架,使用Ion_Auth进行身份验证。为租户选择数据时,如何避免额外的"其中tenant_id = user_id"我在数据库上运行的每个选择查询中的子句。在Ion_Auth上实现组似乎是一种基本的方法,但这会造成它自己的混乱。

有没有办法在全球范围内做到这一点?

1 个答案:

答案 0 :(得分:0)

每个表需要一个tenant_id来分隔行。对于SELECT,您可以创建一个嵌入" WHERE tenant_id = user_id"的VIEW。条款。 user_id是数据库用户,因此您需要为每个租户创建一个数据库帐户。 这给出了清晰的描述:https://opensource.io/2017/12/07/mysql-multi-tenant/