【发布时间】:2011-02-12 17:57:15
【问题描述】:
考虑将多个客户端的 Web(MVC,例如 Rails)应用程序作为服务。
如何设计?
每个客户端一个应用程序实例? (+ 每个客户端一个数据库)
一个实例用于所有客户端(+一个数据库用于所有客户端)
前一个很简单,但是……“效率低下”。后者怎么样? (最佳实践、设计模式)如何分离客户端数据?例如:客户端“1”的工作人员“A”有两个文档,客户端“2”的工作人员“B”有三个文档。如何建立模型关联来保护其他用户(和客户端)数据?我认为使用 Client 模型加入每个查询并不是一个好的解决方案。
【问题讨论】:
-
理想情况下,您的模型都会天生就知道客户端性。
-
我想说这并不那么容易。有很多可能性,但这实际上取决于用例什么是可取的。我建议你看看 Heroku 是如何工作的,有一些采访,比如 InfoQ。
标签: ruby-on-rails ruby design-patterns saas