3

考虑将多个客户端的 Web(MVC,例如 Rails)应用程序作为服务。

这个怎么设计?

  • 每个客户端一个应用程序实例?(+ 每个客户端一个数据库)

  • 所有客户端一个实例(+所有客户端一个数据库)

前一个很简单,但是……“效率低下”。后者怎么样?(最佳实践、设计模式)如何分离客户端数据?例如:客户端“1”的工作人员“A”有两个文档,客户端“2”的工作人员“B”有三个文档。如何建立模型关联来保护其他用户(和客户端)数据?我认为使用 Client 模型加入每个查询并不是一个好的解决方案。

4

2 回答 2

0

这篇MSDN文章很好地解释了多租户数据架构。

可能很明显,但无论如何我都会注意到它;Rails 实例的默认配置是在客户端将会话信息存储在 cookie 中,这有助于让所有应用程序实例都能平等地为请求提供服务。

该系列中的另一篇文章在识别共享服务(例如您需要的监控)方面也提供了丰富的信息。

于 2011-05-10T12:44:48.667 回答
0

我建议看一下关于 Ruby on Rails 中多租户应用程序的早期响应

这实际上取决于您的用例,但处理此问题的最简单方法是单个数据库,其范围限定为特定应用程序。您可以根据您的要求/预算从那里前往。

我是该链接中详细介绍的 postgresql 模式系统的忠实粉丝:P

于 2010-04-27T09:00:25.847 回答