在 php 中为多租户应用程序实施共享数据库
Implementing shared database for multi tenant application in php
我使用 "Shared database, shared schema. A tenant identifier (tenant key) associates every row with the right tenant." 结构为多租户应用程序设计了 MySQL 数据库,如 this post.
所示
我使用 Codeigniter 作为我的 PHP 框架和 Ion_Auth 进行身份验证。 selecting 租户的数据时,如何避免在每个 select 查询中有一个额外的 "where tenant_id = user_id" 子句我 运行 在数据库上。在 Ion_Auth 上实施群组似乎是执行此操作的基本方法,但这会造成它自己的混乱。
有没有办法在全球范围内做到这一点?
每个 table 需要一个 tenant_id 来分隔行。对于 SELECT,您可以创建一个嵌入了 "WHERE tenant_id = user_id" 子句的 VIEW。 user_id 是数据库用户,所以你需要为每个租户创建一个数据库帐户。
这给出了明确的描述:https://opensource.io/2017/12/07/mysql-multi-tenant/
我使用 "Shared database, shared schema. A tenant identifier (tenant key) associates every row with the right tenant." 结构为多租户应用程序设计了 MySQL 数据库,如 this post.
所示我使用 Codeigniter 作为我的 PHP 框架和 Ion_Auth 进行身份验证。 selecting 租户的数据时,如何避免在每个 select 查询中有一个额外的 "where tenant_id = user_id" 子句我 运行 在数据库上。在 Ion_Auth 上实施群组似乎是执行此操作的基本方法,但这会造成它自己的混乱。
有没有办法在全球范围内做到这一点?
每个 table 需要一个 tenant_id 来分隔行。对于 SELECT,您可以创建一个嵌入了 "WHERE tenant_id = user_id" 子句的 VIEW。 user_id 是数据库用户,所以你需要为每个租户创建一个数据库帐户。 这给出了明确的描述:https://opensource.io/2017/12/07/mysql-multi-tenant/