你需要大量的阅读和大量的工作!
首先,让我们暂时完全忽略计费方面 - 归根结底,应用程序的这一部分确实相当微不足道。取出一页37信号Rework http://37signals.com/rework(第 93 和 94 页)并在开始实施之前启动您的产品并提供 30 天免费试用(那时您应该知道如何实施)。
其次,为什么你认为“gmail”不使用多租户,URI 结构没有告诉任何底层数据库结构。我相当有信心他们不会为每一位客户克隆数据库模式。因此,您可能已经回答了自己的问题 -您想要实施多租户.
您将想要抽象您的数据库(和应用程序架构),老实说,没有比 Taylor Otwell(Laravel 的创建者)的书更好的资源来帮助您实现这一目标了。Laravel:从学徒到工匠 https://leanpub.com/laravel。他的书不适合初学者,当你读完它时,你应该能够自己回答这个问题。
您不会为每个用户创建表或数据库,甚至不会为每个组织创建一个表或数据库。相反,您将在代码中创建抽象数据库结构,这将从数据库中提取用户数据。
考虑检查访问组织的权限作为用户身份验证的另一层。对于每个请求,您都将检查该用户是否可以访问特定组织。您可能还会检查以确保该组织仍然处于活动状态(是否因为他们没有付款而过期?)这将在每次请求时再次发生,并且可能会出现以下情况:Laravel 内的过滤器 http://laravel.com/docs/routing#route-filters.
这确实引出了开发 SaaS 应用程序的下一个非常重要的因素。
我不了解你,但我很偏执,如果我不确定那个用户号码,我晚上就睡不好觉4506
无法看到自己不属于的组织的数据。确保这一点的唯一真正好的方法是通过单元测试,如果您还没有这样做,我强烈建议您学习。
在 Laravel 4 中执行此操作的最佳方法是阅读 Jeffrey Way 的书Laravel 测试解码 https://leanpub.com/laravel-testing-decoded。这本书非常先进,但如果你很好地掌握了基础知识,仍然很容易理解。
最后但并非最不重要的一点是,最重要的一件事是参与社区——我建议最简单的方法就是闲逛#laravel IRC 频道 http://laravel.io/irc(自由节点)。问一些问题,也许回答一些问题,频道中的每个人都非常友善且反应灵敏。
您肯定会经历一次冒险,不要害怕提出问题和犯错误。祝你好运。