Database design 单个或多个数据库

Database design 单个或多个数据库,database-design,Database Design,我正在开发一项跟踪网站访问者的服务(网站所有者只是将一些java脚本放到他的网站上……就像Google Analytical或Woopra)。有些网站每天的访问量很低,但也很高(超过10000次)。此外,这项服务的用户数量可以增加到数千。数据库并没有非常复杂的结构(3或4个表)。我正在使用MSSQL 2008 该系统的最佳解决方案是什么 单一数据库系统,一个数据库供所有用户使用 多数据库系统,每个用户一个数据库 多数据库系统,一个数据库用于某些用户范围 所以1。这可能是个坏主意,我不能在两个之间

我正在开发一项跟踪网站访问者的服务(网站所有者只是将一些java脚本放到他的网站上……就像Google Analytical或Woopra)。有些网站每天的访问量很低,但也很高(超过10000次)。此外,这项服务的用户数量可以增加到数千。数据库并没有非常复杂的结构(3或4个表)。我正在使用MSSQL 2008

该系统的最佳解决方案是什么

  • 单一数据库系统,一个数据库供所有用户使用
  • 多数据库系统,每个用户一个数据库
  • 多数据库系统,一个数据库用于某些用户范围
  • 所以1。这可能是个坏主意,我不能在两个之间做出决定。三,

    谢谢你的回答


    鲁迪

    好吧,只要数据库的数量没有什么奇怪的限制,为什么不选择选项3呢?

    选择选项1


    数据库旨在扩展和管理大量数据。尝试使用多个数据库只会让事情变得一团糟,并在您这边添加更多代码。想象一下,必须为每个新用户创建一个数据库,然后记录哪个数据库是为哪个用户创建的…

    我假设您将拥有某种服务接口,可以通过http调用,并且通过该接口统计数据将持久化到数据库中

    我首先使用一个数据库,它(根据定义)将是一个能够服务多个用户的数据库。很可能这个(简单的)系统对于您的前200(300?800?1000?)个用户来说已经足够好了。然后你会有一个简单的系统,运行良好

    当您注意到数据库负载增加到某个级别(监视它)时,您可以通过向不同的数据库提供用户集来稍微改变您的服务。无需更改数据库设计,因为它已经适用于多个用户。仅调整服务应用程序,使其根据用户选择正确的数据库

    您可以选择具有商业意义的用户集;例如,一家网络托管公司的150名用户向您(或您的客户)付费以收集统计数据


    在这种情况下,单个数据库更容易对所有用户的统计数据进行分组。

    您想过“云计算”吗。在这里,您根本不必担心可伸缩性。

    为了澄清,当您说用户时,您是指使用此服务的网站吗?这当然是thusfar的最佳答案+1.