Laravel多租户方法。从哪儿开始

时间:2013-11-04 11:43:29

标签: laravel laravel-4 multi-tenant

我有一个完整的应用程序编码。现在,唯一缺少的部分就是让它成为多租户。

我想允许客户注册到我的应用程序网站,并为该帐户获取一个完全空数据库的应用程序实例。

我曾想过要玩环境,但我不确定这是不是一个好方法:

config
    - user1
        - database.php
    - user2
        - database.php
    - ...

我还考虑过一个唯一的配置文件,其中包含有关每个帐户的数据库信息,并根据子域名设置数据库连接。像我在这篇文章中看到的那样:

Multi-tenant in Laravel4

做这部分的任何其他想法或更好的方法?

2 个答案:

答案 0 :(得分:4)

您的解决方案需要1000个用户的1000个文件夹。 1000个数据库,如果在应用程序实时循环期间发生任 你不要这样,相信我。

相反,创建一个数据库并使用flags / foreign键将数据分配给用户,简单地说。

答案 1 :(得分:3)

正如Andreyco所指出的,拥有1000个数据库的1000个用户很快会成为一个笑话,但如果你的用户帐户(客户端)数量要小得多,那么这不是一个问题。

最好的方法是拥有一个包含所有通用客户信息的“主数据库”,这可以通过您也可以访问的“超级管理员”面板进行控制。然后,它列出了其他帐户的数据库配置详细信息,因此将其他数据库的数据库信息存储在该表中的表中。

它的安全性稍差,但实质上意味着有人必须破解主数据库以进入其他数据库,这是不太可能的。您还应该限制这些数据库的防火墙,以便即使攻击者位于该主数据库中,也不会在不侵入您的某个Web服务器并从那里通过SSH连接到辅助数据库的情况下执行该操作。