2012-05-22 68 views
0

这看起来像的范围的问题,但所有都涉及到SaaS和基于PHP的应用程序,我们已经建立。我们意识到我们的应用程序架构和研究它,让我们确保遇到的所有必要的技术之前,我们转移到生产和不面对任何失败!SaaS的架构基于灯CRM应用

支持的SaaS我们决定让我们的数据库多租户,每个客户都将拥有自己的数据库。我的想法在下面的问题列表中令人惊叹。

  • 如何提供定制SaaS多租户应用程序以满足个人租户需求的能力?

  • 如何确保每个租户数据库的安全,使他们不会无意中访问彼此的数据?

  • 什么是群集,以及如何增加新的应用程序和数据库实例,以增加它们。的客户?

  • 我们做什么,以确保SaaS的网站的性能和可扩展性?

  • 我们如何处理SaaS应用程序的故障,尤其是当我们启动新版本和更新(持续集成)时?

  • 任何特殊的解决方案,用于处理用户/客户,激活和停用模块的权限,SaaS应用程序?

I have attached block diagram of DB we have decided to go with

+0

这不是一个坏问题,但它很广泛,不适合本网站。堆栈溢出处理特定的编程问题,而不是这种类型的问题。 – jprofitt

回答

0

我已经写了一篇好文章很多,我们需要考虑在开发PHP中的SaaS应用程序的项目。检查SaaS application development using PHP in Zend Framework

解答大家的一些问题都低于:

如何提供自定义一个SaaS多租户应用程序,以满足个别租户需求的能力?

它像一个正常的网站开发。假设您有资源A到Z,那么您需要将分配或可访问的承租人资源保留在数据库内。然后在访问时可以简单地检查权限。

如何确保每个租户数据库的安全,使他们不会意外访问彼此的数据?

关于SaaS应用程序的数据库设计是一个在Stack Overflow上讨论很多次的话题。您可以使用单个数据库或每个租户的唯一数据库。对于大项目,第二个是合适的。

如果您打算使用Single Database,只需将TENANT ID存储在所有表中。然后在认证租户时,根据请求来自的子域,在SESSION中保留租户ID。然后在所有数据库操作中传递此ID,因此,它不会意外地影响任何其他租户的数据。

+0

该链接不再有效 –

+0

@JorgeZapata立即查看。该链接正在工作。 –

+0

非常有帮助,谢谢@stanzen –