代码之家  ›  专栏  ›  技术社区  ›  Jagira

我应该为基于web的CRM应用程序选择哪种体系结构?

  •  0
  • Jagira  · 技术社区  · 14 年前

    目标用户将是拥有几百个客户的小公司。我计划使用Rails框架和Rackspace云服务器/amazonec2进行托管。

    由于数据将是保密的,我宁愿不使用一个数据库为所有用户。这是否意味着我必须为每个客户机启动一个rails应用程序的新实例,每个应用程序都绑定到一个子域?还是有解决办法?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Community noseratio    7 年前

    SAAS世界中的大多数多租户应用程序似乎运行在单个数据库上,使用唯一标识符(客户机或帐户id)将数据分开。这是相当简单的代码和工作。您可以对部署过程创建测试和审核,以确保数据保持私有。

    更多详情请参见: Should I use multiple databases?

        2
  •  2
  •   Community noseratio    7 年前

    这不是特定于Rails的,但您确实应该仔细阅读 multitenancy conference talk 在Ruby/Rails中编写多租户应用程序。您可以在以下问题的答案中找到更多信息: Any thoughts on Multi-tenant versus Multi-database apps in Rails

        3
  •  1
  •   thomasfedb    14 年前

    首先,就框架而言,使用对你来说最简单的东西,对我来说Rails就是最好的选择。

    建议为每个客户端创建单独的数据库/rails实例。有了良好的授权,正如我所期望的那样,像你所描述的那样,你可以阻止所有对非正统项目的访问,而不会有太多麻烦。

    同时,运行许多Rails实例会“阻塞”您的系统,造成大部分资源浪费。

    一个好的EC2应该能够支持你的应用程序,但是它实际上取决于你的代码运行成本(以cpu时间计算)和你的查询成本。这不是我们可以提供的一个真正准确的估计。