我已经使用“共享数据库,共享模式”为多租户应用程序设计了mysql数据库。租户标识符(租户密钥)将每一行与正确的租户结构相关联,如本文所示。我使用codeigniter作为我的php框架,并使用ionauth进行身份验证。为租户选择数据时,如何避免在数据库上运行的每个select查询中都有额外的“where tenant\u id=user\u id”子句。在ionauth上实现组似乎是实现这一点的基本方法,但这会造成它自己的混乱。有没有办法在全球范围内做到这一点?
b1uwtaje1#
每个表需要一个租户id来分隔行。对于select,您可以创建一个嵌入了“where tenant\u id=user\u id”子句的视图。用户id是数据库用户,因此需要为每个租户创建一个数据库帐户。这给出了一个清晰的描述:https://opensource.io/2017/12/07/mysql-multi-tenant/
1条答案
按热度按时间b1uwtaje1#
每个表需要一个租户id来分隔行。对于select,您可以创建一个嵌入了“where tenant\u id=user\u id”子句的视图。用户id是数据库用户,因此需要为每个租户创建一个数据库帐户。这给出了一个清晰的描述:https://opensource.io/2017/12/07/mysql-multi-tenant/