我计划开发一个相当小的SaaS服务。每个业务客户端都有一个关联的数据库(客户端数据库中的模式相同,数据不同)。此外,他们将有一个指向Web应用程序的唯一域,在这里我看到这两个选项:
这适用于将在IIS 7.0上运行的ASP.NET 4.0 MVC 3.0 Web应用程序。它会相当小,但我确实要求可扩展。我应该选择1还是2?
答案 0 :(得分:2)
This MSDN article是一个很好的资源,详细介绍了三种模式的优点:
就您的应用处理方式而言,数据库设计可能会确定这一点。我过去做过共享数据库和共享模式。在分离的DB方法中,我通常也会分离应用程序实例。在共享模式方法中,它是具有逻辑的相同应用程序,用于根据登录名和/或主机名修改可用的数据。
答案 1 :(得分:1)
我不确定这是你正在寻找的答案,但还有第三种选择:
使用多租户数据库设计。一个支持所有客户端的数据库。您的表将包含复合主键。
在您需要时扩展。如果您的服务很小,除了有保证的数据安全性之外,我不会看到任何多个数据库的好处 - 这意味着,您只会为正确的客户端带回查询结果。如果您计划使用云服务托管,则运行多个数据库的成本会高得多。
如果SalesForce可以使用多租户设计托管他们的SaaS,我至少会认为这是小型服务的可行选择。