为托管/云解决方案设计数据库和应用程序

时间:2013-10-22 10:44:07

标签: sql-server database coldfusion cloud hosted

在开始制作托管应用程序之前,是否有任何可用的资源可以指导某人如何“思考”托管/云解决方案的各个组件?如果这没有意义,我的意思是,是否有关于制作云应用程序时需要考虑哪些事项的指导书籍/网站?

我正在尝试制作托管的CRM风格的软件应用程序,该服务器将为数百名客户提供服务。该应用程序由SQL服务器数据库提供支持,该数据库包含许多表和ColdFusion,HTML5,CSS,Javascript前端。如果我在每个客户端站点上安装此应用程序及其组件,则每个安装对于该客户都是唯一的。但不知何故,我不得不在云中复制这种独特性,令我感到困惑。

到目前为止,只有两件事情可以想到:

  1. SQL Server中每个客户需要一个唯一的数据库
  2. 需要在Web应用程序中更改每个客户的数据库连接字符串
  3. 当我试图设想如何设计应用程序以服务于这么多不同的客户时,我的思维过程已经陷入障碍。即使所有客户使用的应用程序都是相同的(相同的DB表,相同的前端),它们存储和检索的数据也将是特定于它们的。所以我认为每个客户都需要为他们创建一个单独的数据库?为每个客户创建副本数据库是否可行?如果我需要更新某些表或添加新表,我将如何为数百个不同的数据库执行此操作?

    从前端我猜每个唯一的客户登录都会更改数据库连接字符串,以便他们只能访问他们的数据库。除此之外,我无法想到每个客户需要改变的其他事情。

    当新客户想要注册时,我需要清楚我需要为他们创建什么才能访问该应用程序。我想这最终是我需要考虑的,但我被卡住了。

    如果有人可以提出一些想法,或者有关于此类事情的书籍或网站,有人可以指出我,我真的非常感激。

    修改 我正在看一篇关于Salesforce.com的文章,它说

    "In order to ensure privacy of data for each user and give an effect of each having their own database, the data from different users are securely isolated from one another."
    

    任何人都知道如何实现这一目标或如何实现目标?

1 个答案:

答案 0 :(得分:0)

在这里找到一些很棒的信息。它被称为多租户数据库设计,似乎是一个共同的话题。一旦我获得了设计的数据库,那么应用程序可以很好地放在最上面。

https://dba.stackexchange.com/questions/1043/what-problems-will-i-get-creating-a-database-per-customer