简体   繁体   English

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

[英]Implementing shared database for multi tenant application in php

I've designed my MySQL database for a multi tenant application using the "Shared database, shared schema. A tenant identifier (tenant key) associates every row with the right tenant." 我已使用“共享数据库,共享模式。租户标识符(租户密钥)将每一行与正确的租户相关联”为多租户应用程序设计了MySQL数据库。 structure as shown in this post. 这篇文章中显示的结构。

I'm using Codeigniter as my PHP framework and Ion_Auth for authentication. 我使用Codeigniter作为我的PHP框架,并使用Ion_Auth进行身份验证。 When selecting data for a tenant, how do I avoid having an additional "where tenant_id = user_id" clause in every select query I run on the database. 在为租户选择数据时,如何避免在数据库上运行的每个选择查询中都包含附加的“ where tenant_id = user_id”子句。 Implementing groups on Ion_Auth seems to be a basic way of doing this, but that will create it's own mess. 在Ion_Auth上实现组似乎是执行此操作的基本方法,但这会造成混乱。

Is there a way to do this globally? 有没有办法在全球范围内做到这一点?

You will need a tenant_id per table to separate the rows. 每个表都需要一个tenant_id来分隔行。 For the SELECT you can create a VIEW with embedded the "WHERE tenant_id = user_id" clause. 对于SELECT,您可以创建一个嵌入了“ WHERE tenant_id = user_id”子句的VIEW。 The user_id is the database user, so you need to create a database account per tenant. user_id是数据库用户,因此您需要为每个租户创建一个数据库帐户。 This gives a clear description: https://opensource.io/2017/12/07/mysql-multi-tenant/ 这给出了清晰的描述: https : //opensource.io/2017/12/07/mysql-multi-tenant/

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

相关问题 共享的多租户MySQL数据库中的可伸缩性 - Scalability in shared multi-tenant MySQL database 如何保持MongoDB多租户PHP SaaS应用程序方法 - How to keep MongoDB multi tenant PHP SaaS application approach 如何在Laravel 5中使用Redis对多租户多数据库架构应用程序执行排队和缓存? - How to perform queuing and caching using redis for a multi-tenant multi-database architecture application in Laravel 5? 多租户数据库设计,每个租户下都有子用户 - Multi Tenant database design with sub users under every tenant 将单个或多个mysql用户用于具有多租户架构的SaaS PHP / mysql应用程序 - Use single or mulitple mysql users for SaaS PHP/mysql application with multi-tenant architecture 在多租户应用程序中创建计划作业 - Creating scheduled jobs in a Multi-Tenant application 多租户SaaS应用程序的最佳方法 - best approach for multi tenant SaaS application 多租户 Laravel 应用程序中的护照实施问题 - Issue in passport implementation in multi tenant laravel application 会话,多个选项卡和多租户数据库 - Sessions, Multiple Tabs and Multi-tenant database 需要多租户数据库体系结构的建议吗? - Need suggestion for Multi-tenant database architecture?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM