介绍

# 介绍

# 什么是多租户?

多租户是指能够从一个应用程序的单一托管实例向多个用户(租户)提供服务。这与为每个用户单独部署应用程序形成对比。

建议你看一下这个幻灯片:https://multitenantlaravel.com 。简单地浏览一下幻灯片,能在5分钟内让您了解80%的多租户相关。

请注意,如果您只是想将作用域任务分配给当前用户,则无需使用多租户包。 只需使用auth()->user()->tasks()之类的调用即可。 这是多租户的最简单形式。

这个包是围绕着多租户的概念建立的,多租户通常意味着让租户有自己的用户,这些用户有自己的资源,比如todo任务。而不仅仅是用户有任务。

# 多租户类型

多租户有两种类型

  • 单数据库租户--租户共享一个数据库,使用where tenant_id = 1子句将其数据分开。
  • 多数据库租户 - 每个租户都有自己的数据库。

这个包可以让你做到这两点,不过它更侧重于多数据库租户,因为这种类型需要扩展包做更多的工作,而你这边的工作较少。而对于单数据库租借,你会得到一个类,它可以跟踪当前的租户和模型特征--剩下的就看你自己了。

# 多租户模式

租户 "模式 "是这个包的一个独特属性。在以前的版本中,这个包主要用于自动租约,这意味着在一个租户被识别后,像数据库连接、缓存、文件系统、队列等都被切换到该租户的上下文中--他的数据与其他部分完全隔离。

在当前的版本中,我们也在使手动租约成为一流的功能。如果你希望自己对数据进行范围化,我们为你提供了诸如模型特征等东西。

# 租户身份

为了使你的应用程序能够认识到租户,必须识别租户。这个包里有许多识别中间件类。你可以通过域、子域、域或子域同时识别租户,路径或请求数据。